在 WIFI 列表中查找字符串



我想从处理中的WIFI扫描中获取特定的路由器信息。首先,我扫描WIFI并将其保存到列表中。

WifiManager wifiManager = (WifiManager)getActivity().getSystemService(Context.WIFI_SERVICE); 
    wifiManager.startScan();
   List<ScanResult> wifiList = wifiManager.getScanResults();

然后我检查是否有任何项目等于我正在搜索的路由器名称(" dlink")。

for(int i = 0; i < wifiList.size();i++){
if( wifiList.get(i).SSID.toString() == "dlink"){
         con[0] = "router1 found";
}
}

输出仅为空。我知道路由器在那里。我打印了列表,检查了路由器在wifi列表的位置。将列表中的该路由器的SSID与路由器名称进行了比较,但它不起作用。我逐个打印出路由器的名称字符,它是一样的。

您几乎不应该使用 == 来比较String值。应改用equals()函数。

参考资料:

要比较两个字符串的内容,请使用 equals() 方法,如 if (a.equals(b)) 中所示,而不是 if (a == b) 。字符串是一个对象,因此将它们与 == 运算符进行比较只会比较两个字符串是否存储在同一内存位置。使用 equals() 方法将确保比较实际内容。(故障排除参考有更长的说明。

另请参阅:如何在 Java 中比较字符串?

最新更新