我创建了一个需要处理WiFi的应用。
我有这段代码
this.wifiManager = (WifiManager) this.context.getSystemService(Context.WIFI_SERVICE);
String currentSSID = wifiManager.getConnectionInfo().getSSID();
问题是,当我已经连接到热点时,当前的SSID有效,但是当我断开连接时,它将返回上一个热点的SSID,而不是诸如
null
或equivalent
之类的东西。 最佳答案
经过一些实验,我发现当与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/