• 连接WIFI的DEMO


     1 public class ConnectWifi {
     2     private WifiManager wifiManager;
     3 
     4     public ConnectWifi(Context context) {
     5         wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
     6     }
     7 
     8     public void connectWifiDHCP(String ssid, String pswd, int security) {
     9         WifiConfiguration mWifiConfig = getConfig(ssid, pswd, security);
    10         int networkId = wifiManager.addNetwork(mWifiConfig);
    11         wifiManager.enableNetwork(networkId, true);
    12     }
    13     public void connectWifiSTATIC() throws UnknownHostException {
    14         //得到连接中的WifiConfiguration.
    15         int wifiState = wifiManager.getWifiState();
    16         WifiInfo connectionInfo = null;
    17         WifiConfiguration connectionConfig = null;
    18         if(wifiState== WifiManager.WIFI_STATE_ENABLED){
    19             connectionInfo = wifiManager.getConnectionInfo();
    20         }
    21         List<WifiConfiguration> configuredNetworks = wifiManager.getConfiguredNetworks();
    22         for(WifiConfiguration config:configuredNetworks){
    23             if(config.networkId==connectionInfo.getNetworkId()){
    24                 connectionConfig = config;
    25             }
    26         }
    27         Log.e("lvxingang", "connectionConfig.SSID = "+connectionConfig.SSID);
    28         
    29         wifiManager.disableNetwork(connectionInfo.getNetworkId());
    30         
    31         
    32         
    33         //设置已经连接的ip,sub,gateway,dns.
    34         connectionConfig.ipAssignment = IpAssignment.STATIC;//设置静态
    35         connectionConfig.preSharedKey = null;//设置加密方式.
    36         //设置linkProperties
    37         LinkProperties linkProperties = new LinkProperties();
    38         InetAddress ip = InetAddress.getByName("192.168.1.104");
    39         InetAddress gateway = InetAddress.getByName("192.168.1.1");
    40         InetAddress dns = InetAddress.getByName("8.8.8.8");
    41         
    42         linkProperties.addLinkAddress(new LinkAddress(ip, 24));
    43         linkProperties.addRoute(new RouteInfo(gateway));
    44         linkProperties.addDns(dns);
    45         connectionConfig.linkProperties = linkProperties;
    46         int addNetwork = wifiManager.addNetwork(connectionConfig);
    47         wifiManager.enableNetwork(addNetwork, true);
    48         
    49     }
    50     
    51     private WifiConfiguration getConfig(String ssid, String pswd, int security) {
    52         WifiConfiguration config = new WifiConfiguration();
    53         config.SSID = AccessPoint.convertToQuotedString(ssid);
    54         config.hiddenSSID = true;
    55         switch (security) {
    56         case AccessPoint.SECURITY_NONE:
    57             config.allowedKeyManagement.set(KeyMgmt.NONE);
    58             break;
    59         case AccessPoint.SECURITY_WEP:
    60             config.allowedKeyManagement.set(KeyMgmt.NONE);
    61             config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
    62             config.allowedAuthAlgorithms.set(AuthAlgorithm.SHARED);
    63             if (pswd != null && !pswd.equals("")) {
    64                 int length = pswd.length();
    65                 String password = pswd;
    66                 // WEP-40, WEP-104, and 256-bit WEP (WEP-232?)
    67                 if ((length == 10 || length == 26 || length == 58) && password.matches("[0-9A-Fa-f]*")) {
    68                     config.wepKeys[0] = password;
    69                 } else {
    70                     config.wepKeys[0] = '"' + password + '"';
    71                 }
    72             }
    73             break;
    74         case AccessPoint.SECURITY_PSK:
    75             // config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
    76             config.allowedKeyManagement.set(KeyMgmt.WPA_PSK);
    77             if (pswd != null && !pswd.equals("")) {
    78                 String password = pswd;
    79                 if (password.matches("[0-9A-Fa-f]{64}")) {
    80                     config.preSharedKey = password;
    81                 } else {
    82                     config.preSharedKey = '"' + password + '"';
    83                 }
    84             }
    85             break;
    86         case AccessPoint.SECURITY_EAP:
    87             config.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
    88             config.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
    89             break;
    90         default:
    91             return null;
    92         }
    93         config.proxySettings = ProxySettings.NONE;// 代理设置
    94         config.priority = 2;
    95         config.allowedProtocols.set(Protocol.WPA);
    96         config.allowedProtocols.set(Protocol.RSN);
    97         return config;
    98     }
    99 }
  • 相关阅读:
    C# 去重处理字符大小写
    javascript 面向对象之路.2
    C# 如何批量修改集合元素的属性值?
    javascript 面向对象之路.1
    .NET 黑魔法
    C# 语言
    .NET 黑魔法
    .NET 黑魔法
    .NET 黑魔法
    lumisoft.net 邮件管理系列文章
  • 原文地址:https://www.cnblogs.com/olvo/p/2946290.html
Copyright © 2020-2023  润新知