我以前使用getNetworkInfo(ConnectivityManager.TYPE_WIFI)
并且即使在WiFi关闭时也永远不会返回null
,但是在api 23上已经弃用了,所以现在我有了这个:
NetworkInfo isWifiOn = null;
Network[] networks = cm.getAllNetworks();
Log.i("sms", "size:"+networks.length);
for (Network network : networks) {
isWifiOn = cm.getNetworkInfo(network);
if (isWifiOn != null && isWifiOn.getType() == ConnectivityManager.TYPE_WIFI)
{
break;
}
}
下面:
if(isWifiOn!=null){
}
else{
//always enter here because networks.length is 0
}
当我使用getNetworkInfo(ConnectivityManager.TYPE_WIFI)
时,即使这样,WiFi也会关闭。
答案 0 :(得分:1)
根据getNetworkInfo(ConnectivityManager.TYPE_WIFI)
的API文档,它会返回一个NetworkInfo
对象,其中包含NetworkInfo.State枚举,表示没有连接的网络。请参阅ConnectivityManager's getNetworkInfo和NetworkInfo。
网络长度为0是正确的,因为没有连接网络。