• 连接WiFi工具类


     1 public class WifiConnect {
     2 
     3     WifiManager wifiManager;
     4 
     5     // 构造函数
     6     public WifiConnect(WifiManager wifiManager) {
     7         this.wifiManager = wifiManager;
     8     }
     9 
    10     // 提供一个外部接口,传入要连接的无线网
    11     public boolean Connect(String SSID, String Password, int Type) {
    12 
    13         WifiConfiguration wifiConfig = this
    14                 .CreateWifiInfo(SSID, Password, Type);
    15 
    16         WifiConfiguration tempConfig = this.IsExsits(SSID);
    17         if (tempConfig != null) {
    18             wifiManager.removeNetwork(tempConfig.networkId);
    19         }
    20 
    21         int netID = wifiManager.addNetwork(wifiConfig);
    22         boolean flag = wifiManager.enableNetwork(netID, true);
    23         return flag;
    24     }
    25 
    26     // 查看以前是否也配置过这个网络
    27     private WifiConfiguration IsExsits(String SSID) {
    28         List<WifiConfiguration> existingConfigs = wifiManager
    29                 .getConfiguredNetworks();
    30         for (WifiConfiguration existingConfig : existingConfigs) {
    31             if (existingConfig.SSID.equals(""" + SSID + """)) {
    32                 return existingConfig;
    33             }
    34         }
    35         return null;
    36     }
    37 
    38     // 配置WifiConfiguration
    39     public WifiConfiguration CreateWifiInfo(String SSID, String Password,
    40             int Type) {
    41         WifiConfiguration config = new WifiConfiguration();
    42         config.allowedAuthAlgorithms.clear();
    43         config.allowedGroupCiphers.clear();
    44         config.allowedKeyManagement.clear();
    45         config.allowedPairwiseCiphers.clear();
    46         config.allowedProtocols.clear();
    47         config.SSID = """ + SSID + """;
    48 
    49         WifiConfiguration tempConfig = this.IsExsits(SSID);
    50         if (tempConfig != null) {
    51             wifiManager.removeNetwork(tempConfig.networkId);
    52         }
    53 
    54         if (Type == 1) // WIFICIPHER_NOPASS
    55         {
    56             config.wepKeys[0] = "";
    57             config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
    58             config.wepTxKeyIndex = 0;
    59         }
    60         if (Type == 2) // WIFICIPHER_WEP
    61         {
    62             config.hiddenSSID = true;
    63             config.wepKeys[0] = """ + Password + """;
    64             config.allowedAuthAlgorithms
    65                     .set(WifiConfiguration.AuthAlgorithm.SHARED);
    66             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
    67             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
    68             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
    69             config.allowedGroupCiphers
    70                     .set(WifiConfiguration.GroupCipher.WEP104);
    71             config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
    72             config.wepTxKeyIndex = 0;
    73         }
    74         if (Type == 3) // WIFICIPHER_WPA
    75         {
    76             config.preSharedKey = """ + Password + """;
    77             config.hiddenSSID = true;
    78             config.allowedAuthAlgorithms
    79                     .set(WifiConfiguration.AuthAlgorithm.OPEN);
    80             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
    81             config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
    82             config.allowedPairwiseCiphers
    83                     .set(WifiConfiguration.PairwiseCipher.TKIP);
    84             // config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
    85             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
    86             config.allowedPairwiseCiphers
    87                     .set(WifiConfiguration.PairwiseCipher.CCMP);
    88             config.status = WifiConfiguration.Status.ENABLED;
    89         }
    90         return config;
    91     }
    92 
    93 }
  • 相关阅读:
    Visual Studio Code必备插件
    webpack4+:. css属性自动追加前缀 与 mini-css-extract-plugin 插件 打包冲突问题
    webpack4.x抽取css【extract-text-webpack-plugin与mini-css-extract-plugin】
    javaScript中slice, substring,substr三者区别以及用法扩展
    Spring Boot实践——Mybatis分页插件PageHelper的使用
    Nginx配置详解
    Maven的几个常用plugin
    excel拼接数据宏
    我的Linux之路——windows10用WMware安装CentOS7.5 虚拟机详细步骤
    Spring Boot实践——多线程
  • 原文地址:https://www.cnblogs.com/yangleda/p/4149430.html
Copyright © 2020-2023  润新知