我希望得到当前连接的WIFI的名称和存储的连接WIFI的名称.
我发现wifiInfo.getSSID()可以得到正确的结果,比如MyWiFi1,
但是config.SSID中的名称是引号,例如"MyWiFi2".
如何从config.SSID获取正确的名称?谢谢!
public static List<MWiFi> ListPhoneStoredWiFi(Context context) {
List<MWiFi> myWiFiList= new ArrayList<MWiFi>();
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (wifiInfo!=null){
if (wifiInfo.getNetworkId()!=-1){
MWiFi mWiFi=new MWiFi();
mWiFi.name=wifiInfo.getSSID();
mWiFi.networkID=wifiInfo.getNetworkId();
mWiFi.enabled=true;
myWiFiList.add(mWiFi);
}
}
// List stored networks
List<WifiConfiguration> configs = wifiManager.getConfiguredNetworks();
if (configs!=null){
for (WifiConfiguration config : configs) {
if (config.networkId!=wifiInfo.getNetworkId()) {
MWiFi mWiFi=new MWiFi();
mWiFi.name=config.SSID;
mWiFi.networkID=config.networkId;
mWiFi.enabled=true;
myWiFiList.add(mWiFi);
}
}
}
return myWiFiList;
}
Run Code Online (Sandbox Code Playgroud)
根据WifiConfiguration.SSID和WifiInfo.getSSID()的文档,当这些值表示 UTF-8 编码的字符串时,您应该始终期望这些值在引号中返回。这是为了将它们与以十六进制数字字符串形式返回的 SSID 区分开来……这也是您应该处理的值。
由于框架告诉您预期会有变化,因此您的代码应该能够处理查找和屏蔽引号字符。
| 归档时间: |
|
| 查看次数: |
1406 次 |
| 最近记录: |