判断飞行模式 ,检测是否有网络
在飞行模式下:检测是否有网络,有则返回activeNetInfo,没有返回null
/** * read the info of network */ private NetworkInfo getAvailableNetWorkInfo(YyBackUpActivity activity) { ConnectivityManager connectivityManager = (ConnectivityManager) activity .getSystemService(Context.CONNECTIVITY_SERVICE); /* check network status */ NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); /* check network status if it is available */ if (activeNetInfo != null && activeNetInfo.isAvailable()) return activeNetInfo; return null; }
检查是否有网络时先判断是否是飞行模式:
?
//是否飞行模式 ?
? ? static boolean isAirplaneModeOn(Context context) { ?
? ? ? ? ? return android.provider.Settings.System.getInt(context.getContentResolver(), ?
? ? ? ? ? ? ? ? ? android.provider.Settings.System.AIRPLANE_MODE_ON, 0) != 0; ?
? ? }?
?
?
?
下面是我在一个程序中调用上面两个方法
//如果是飞行模式
?
if (isAirplaneModeOn(context)) {
?//如果连接的方式可用并且不为空 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
if (getAvailableNetWorkInfo(context)!=null&&getAvailableNetWorkInfo(context).isAvailable())
YyBackUpGF.showToast(context, R.string.msg_latest_version_tip);
//为空的时候
else {YyBackUpGF.showToast(context,R.string.menu_update_failed);}
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
//不是飞行模式时
else {YyBackUpGF.showToast(context,R.string.menu_update_failed);
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
?
?
一定要加下面两个权限:
?
? ? <uses-permission android:name="android.permission.INTERNET" />
? ? <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />