所以我想在处理过程中从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";
}
}
输出只是null。 我知道路由器在那里的事实。我打印出列表,检查路由器wifiList的位置。将该路由器的SSID从列表与路由器名称进行比较,但它不起作用。我用char打印出路由器名称char,它是一样的。
答案 0 :(得分:1)
您几乎不应该使用==
来比较String
值。您应该使用equals()
函数。
要比较两个字符串的内容,请使用equals()方法,如
if (a.equals(b))
,而不是if (a == b)
。 String是一个Object,因此将它们与==运算符进行比较只会比较两个字符串是否存储在同一个内存位置。使用equals()
方法将确保比较实际内容。 (troubleshooting引用有更长的解释。)