有人遇到这种情况么?
权限有 所有的判断有 但是connManager.getActiveNetworkInfo().isAvailable();还是会有报错的情况个别情况。我暂时能考虑的情况就是网络不稳定 if判断的时候没问题但是return的时候connManager.getActiveNetworkInfo()是null了 但是这种情况太极端了 基本上没有可能啊 if判断能有多久啊
就是 getActiveNetworkInfo()为空了,你就加个判断就好了
if(getActiveNetworkInfo()!=null)
这个好像有点玄玄玄啊
建议参考以下文章的写法:
http://www.cnblogs.com/top5/archive/2012/12/28/2837178.html
请问下 你解决这个问题了么 有些手机在判断网络时会报空呢
方法实现改为如下方式,具体原因见注释:
/**
* 获取当前网络状态(是否可用)
*/
public static boolean hasNetwork(Context context) {
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connManager != null) {
/**
* 获取网络信息实体
* 由于从系统服务中获取数据属于进程间通信,基本类型外的数据必须实现Parcelable接口,
* NetworkInfo实现了Parcelable,获取到的activeNetInfo相当于服务中网络信息实体对象的一个副本(拷贝),
* 所以,不管系统网络服务中的实体对象是否置为了null,此处获得的activeNetInfo均不会发生变化
*/
NetworkInfo activeNetInfo = connManager.getActiveNetworkInfo();
if (activeNetInfo != null) {
return activeNetInfo.isAvailable();
}
}
return false;
}