配置WifiConfiguration

[java]  view plain copy print ?
 
  1. public WifiConfiguration CreateWifiInfo(String SSID, String Password, int Type)     
  2.    {     
  3.          WifiConfiguration config = new WifiConfiguration();       
  4.           config.allowedAuthAlgorithms.clear();     
  5.           config.allowedGroupCiphers.clear();     
  6.           config.allowedKeyManagement.clear();     
  7.           config.allowedPairwiseCiphers.clear();     
  8.           config.allowedProtocols.clear();     
  9.          config.SSID = "\"" + SSID + "\"";       
  10.              
  11.          WifiConfiguration tempConfig = this.IsExsits(SSID);               
  12.          if(tempConfig != null) {      
  13.              mWifiManager.removeNetwork(tempConfig.networkId);      
  14.          }    
  15.              
  16.          if(Type == 1) //WIFICIPHER_NOPASS    
  17.          {     
  18.               config.wepKeys[0] = "";     
  19.               config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);     
  20.               config.wepTxKeyIndex = 0;     
  21.          }     
  22.          if(Type == 2) //WIFICIPHER_WEP    
  23.          {     
  24.              config.hiddenSSID = true;    
  25.              config.wepKeys[0]= "\""+Password+"\"";     
  26.              config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);     
  27.              config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);     
  28.              config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);     
  29.              config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);     
  30.              config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);     
  31.              config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);     
  32.              config.wepTxKeyIndex = 0;     
  33.          }     
  34.          if(Type == 3) //WIFICIPHER_WPA    
  35.          {     
  36.          config.preSharedKey = "\""+Password+"\"";     
  37.          config.hiddenSSID = true;       
  38.          config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);       
  39.          config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);                             
  40.          config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);                             
  41.          config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);                        
  42.          //config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);      
  43.          config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);    
  44.          config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);    
  45.          config.status = WifiConfiguration.Status.ENABLED;       
  46.          }    
  47.           return config;     
  48.    }     
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
反射WifiConfiguration可以用于获取或设置WiFi网络的配置信息,例如SSID、密码、加密方式等。下面是一个获取WiFi配置信息的示例代码: ``` // 获取WifiConfiguration类 Class<?> wifiConfigClass = Class.forName("android.net.wifi.WifiConfiguration"); // 获取WifiConfiguration的构造方法 Constructor<?> wifiConfigConstructor = wifiConfigClass.getDeclaredConstructor(); // 创建一个新的WifiConfiguration对象 Object wifiConfig = wifiConfigConstructor.newInstance(); // 反射获取SSID字段 Field ssidField = wifiConfigClass.getDeclaredField("SSID"); ssidField.set(wifiConfig, "\"wifi_ssid\""); // 设置SSID字段值,注意SSID的格式要加上双引号 // 反射获取preSharedKey字段 Field preSharedKeyField = wifiConfigClass.getDeclaredField("preSharedKey"); preSharedKeyField.set(wifiConfig, "\"wifi_password\""); // 设置preSharedKey字段值,注意密码的格式要加上双引号 // 反射获取KeyMgmt字段 Field keyMgmtField = wifiConfigClass.getDeclaredField("allowedKeyManagement"); keyMgmtField.set(wifiConfig, new BitSet(WifiConfiguration.KeyMgmt.strings.length)); // 设置KeyMgmt字段值 // 获取KeyMgmt对应的值,例如WPA-PSK int wpaPsk = WifiConfiguration.KeyMgmt.strings.indexOf("WPA-PSK"); // 将对应的值设置为true if (wpaPsk >= 0) { keyMgmtField.get(wifiConfig, wpaPsk, true); } // 打印WifiConfiguration配置信息 Log.d(TAG, "WifiConfiguration: " + wifiConfig.toString()); ``` 注意:这里的示例代码只是为了说明反射WifiConfiguration的原理,实际应用中需要根据实际情况进行修改。此外,由于反射操作可能会影响系统的稳定性和安全性,所以在实际应用中需要谨慎使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值