android - 为什么 getAllNetworks() 在禁用 wifi 或数据移动时返回 0?

标签 android null

我以前使用过 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 已关闭,它也始终有效。

最佳答案

根据 getNetworkInfo(ConnectivityManager.TYPE_WIFI) 的 API 文档,它将返回一个带有 NetworkInfo.StateNetworkInfo 对象表示没有网络连接的枚举。参见 ConnectivityManager's getNetworkInfoNetworkInfo .

网络长度为0是正确的,因为没有网络连接。

关于android - 为什么 getAllNetworks() 在禁用 wifi 或数据移动时返回 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34538886/

相关文章:

java - 我如何按字母顺序对这个数组列表进行排序?

c - 使用 sprintf 时大小为 1 的 char 数组的空终止

java - 在 java 中检查字符串/对象的空值?

php - 我应该在 PHP 中检查变量是否为 NULL?

android - 如何在 Android 的 QML WebView 中启用 LocalStorage?

Android Wear 错误 ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null}

java - 返回 null 或再次抛出异常

javascript - 是否可以在空值的原型(prototype)中添加方法?

android - 如何在activity类中使用自定义类(扩展View类)来绘制路径而不改变android中主布局的其他部分

javascript - SAPUI5 Cordova 启动原生android导航