我想从处理中的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 中比较字符串?