标签:
写了个函数来判断手机是否联网,但是发现,在手机联网状态下一切正常,而当手机断网时则会发现闪退。
首先第一反应是会不会是没在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;
}
}标签:
原文地址:http://blog.csdn.net/szlcw1/article/details/45789683