我创建了一个需要处理WiFi的应用。
我有这段代码

this.wifiManager = (WifiManager) this.context.getSystemService(Context.WIFI_SERVICE);
String currentSSID = wifiManager.getConnectionInfo().getSSID();


问题是,当我已经连接到热点时,当前的SSID有效,但是当我断开连接时,它将返回上一个热点的SSID,而不是诸如nullequivalent之类的东西。

最佳答案

经过一些实验,我发现当与hospot的连接丢失时,wifiInfo不会更新,因此可以使用以下方法进行修复

ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
boolean isConnected = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected();
this.wifiManager = (WifiManager) this.context.getSystemService(Context.WIFI_SERVICE);
String currentSSID = wifiManager.getConnectionInfo().getSSID();
/*
Surround your ssid with " when you compare it with the ssid of the wifimanager
because it will return your SSID surouded by quotes
*/
if(currentSSID.equals("\"" + your_net_ssid + "\"") && isConnected){
 //You are realy connected to the hospot
}else{
 //The connection dont exist
}


希望这会有用!

关于java - WifiInfo getSSID断开连接时返回最后一个SSID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57322757/

10-11 00:28