我们可以通过以下方式获取有关当前Wifi网络的信息:
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo connectionInfo = wifiManager.getConnectionInfo();
但是我没有明显的方法来获得与此WifiInfo
相关的Network
对象。
我们还可以遍历所有Network
:
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
for (Network network : connectivityManager.getAllNetworks()) {
NetworkInfo networkInfo = connectivityManager.getNetworkInfo(network);
String extraInfo = networkInfo.getExtraInfo();
if (extraInfo.equals(connectionInfo.getSSID())) {
return network;
}
}
但是自Android 9.0起,即使我具有位置许可,extraInfo
还是空白。
是否有一种安全的方法来获取与连接的wifi网络相关的当前Network
?