Android 判断手机是否联网时异常闪退
写了个函数来判断手机是否联网,但是发现,在手机联网状态下一切正常,而当手机断网时则会发现闪退。
首先第一反应是会不会是没在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; } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。