我有以下代码:
int nb=0;
wifiInfo = wifi.getConnectionInfo();
ssid = wifiInfo.getSSID();
wifi.startScan();
result=wifi.getScanResults();
int sizeList=vysledek.size();
if(result==null) {
Log.d( LOG,"ERROR");
} else {
for(int i=0; i<sizeList; i++) {
Log.d("Check",result.get(i).SSID);
if (result.get(i).SSID.equalsIgnoreCase(ssid)) {
Log.d("SSID",ssid);
nb++;
}
//Log.d("nb:",Integer.toString(nb)+"Size:"+Integer.toString(sizeList));
}
}
我已连接到名为ABC的wifi网络,result.get(0).SSID
,result.get(1).SSID
和result.get(2).SSID
也是ABC。为什么if语句不会增加nb?在所有情况下,nb仍为0。
谢谢大家
答案 0 :(得分:2)
getScanResults()将为SSID提供双引号,例如通过result.get(i).SSID。
访问时,您的ABC将为“ABC”在比较之前删除这些引号。
/**
* remove double quote from start and end of the string
*/
private String unornamatedSsid(String ssid) {
ssid = ssid.replaceFirst("^\"", "");
return ssid.replaceFirst("\"$", "");
}
使用上述功能:
String scannedSSid = unornamatedSsid(result.get(i).SSID);
if (scannedSSid.equalsIgnoreCase(ssid)) {
}