Android 判断手机是否联网时异常闪退

来源:互联网 发布:伦纳德数据 编辑:程序博客网 时间:2024/04/28 20:45

写了个函数来判断手机是否联网,但是发现,在手机联网状态下一切正常,而当手机断网时则会发现闪退。

首先第一反应是会不会是没在AndroidManifest.xml文件中设置联网权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> 

发现有这段语句,那么是在哪里出错呢,我最初的代码是这样的:

    /**判断网络是否可用     * @param context     * @return     */    public static boolean isNetworkAvailable(Context context) {           ConnectivityManager cm = (ConnectivityManager) context                   .getSystemService(Context.CONNECTIVITY_SERVICE);          return cm.getActiveNetworkInfo().isAvailable();    }


经过调试,发现当我断网状态下,我在cm.getActiveNetworkInfo()中返回的NetworkInfo实例是个空指针,此时调用isAvailable()发生错误。所以要对NetworkInfo实例进行判断。


    public static boolean isNetworkAvailable(Context context) {       try {ConnectivityManager manger = (ConnectivityManager) context                .getSystemService(Context.CONNECTIVITY_SERVICE);         NetworkInfo info = manger.getActiveNetworkInfo();        //return (info!=null && info.isConnected());//        if(info != null){        return info.isConnected();        }else{        return false;        }} catch (Exception e) {        return false;}    }


0 0
原创粉丝点击