android网络判断报空指针错误

图片说明

图片说明

有人遇到这种情况么?
权限有 所有的判断有 但是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;
    }