ConnectivityManager获取网络状态

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

/** 
  * 测试ConnectivityManager 
  * ConnectivityManager主要管理和网络连接相关的操作 
  * 相关的TelephonyManager则管理和手机、运营商等的相关信息;WifiManager则管理和wifi相关的信息。 
  * 想访问网络状态,首先得添加权限  
  * NetworkInfo类包含了对wifi和mobile两种网络模式连接的详细描述,通过其getState()方法获取的State对象则代表着 
  * 连接成功与否等状态。 
  *  
  */  
 public void testConnectivityManager() {  
  ConnectivityManager connManager = (ConnectivityManager) this  
    .getSystemService(CONNECTIVITY_SERVICE);  
  // 获取代表联网状态的NetWorkInfo对象  
  NetworkInfo networkInfo = connManager.getActiveNetworkInfo();  
  // 获取当前的网络连接是否可用  
  boolean available = networkInfo.isAvailable();  
  if(available){  
   Log.i("通知", "当前的网络连接可用");  
  }  
  else{  
   Log.i("通知", "当前的网络连接可用");  
  }  
  
  State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();  
  if(State.CONNECTED==state){  
   Log.i("通知", "GPRS网络已连接");  
  }  
    
  state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();  
  if(State.CONNECTED==state){  
   Log.i("通知", "WIFI网络已连接");  
  }  
    
  // 跳转到无线网络设置界面  
  startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));  
  // 跳转到无限wifi网络设置界面  
  startActivity(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS));  
    
 }

android中判断网络连接是否可用

一、判断网络连接是否可用


  1. public static boolean isNetworkAvailable(Context context) {     

  2.         ConnectivityManager cm = (ConnectivityManager) context     

  3.                 .getSystemService(Context.CONNECTIVITY_SERVICE);     

  4.         if (cm == null) {     

  5.         } else {  

  6.        //如果仅仅是用来判断网络连接   

  7.         //则可以使用 cm.getActiveNetworkInfo().isAvailable();     

  8.             NetworkInfo[] info = cm.getAllNetworkInfo();     

  9.             if (info != null) {     

  10.                 for (int i = 0; i < info.length; i++) {     

  11.                     if (info[i].getState() == NetworkInfo.State.CONNECTED) {     

  12.                         return true;     

  13.                     }     

  14.                 }     

  15.             }     

  16.         }     

  17.         return false;     

  18.     }   

二、判断GPS是否打开

  1. public static boolean isGpsEnabled(Context context) {     

  2.         LocationManager lm = ((LocationManager) context     

  3.                 .getSystemService(Context.LOCATION_SERVICE));     

  4.         List accessibleProviders = lm.getProviders(true);     

  5.         return accessibleProviders != null && accessibleProviders.size() > 0;     

  6.     }   

三、判断WIFI是否打开

  1. public static boolean isWifiEnabled(Context context) {     

  2.         ConnectivityManager mgrConn = (ConnectivityManager) context     

  3.                 .getSystemService(Context.CONNECTIVITY_SERVICE);     

  4.         TelephonyManager mgrTel = (TelephonyManager) context     

  5.                 .getSystemService(Context.TELEPHONY_SERVICE);     

  6.         return ((mgrConn.getActiveNetworkInfo() != null && mgrConn     

  7.                 .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel     

  8.                 .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);     

  9.     }  

 四、判断是否是3G网络

  1. public static boolean is3rd(Context context) {     

  2.         ConnectivityManager cm = (ConnectivityManager) context     

  3.                 .getSystemService(Context.CONNECTIVITY_SERVICE);     

  4.         NetworkInfo networkINfo = cm.getActiveNetworkInfo();     

  5.         if (networkINfo != null     

  6.                 && networkINfo.getType() == ConnectivityManager.TYPE_MOBILE) {     

  7.             return true;     

  8.         }     

  9.         return false;     

  10.     }    


五、判断是wifi还是3g网络,用户的体现性在这里了,wifi就可以建议下载或者在线播放。

  1. public static boolean isWifi(Context context) {     

  2.             ConnectivityManager cm = (ConnectivityManager) context     

  3.                     .getSystemService(Context.CONNECTIVITY_SERVICE);     

  4.             NetworkInfo networkINfo = cm.getActiveNetworkInfo();     

  5.             if (networkINfo != null     

  6.                     && networkINfo.getType() == ConnectivityManager.TYPE_WIFI) {     

  7.                 return true;     

  8.             }     

  9.             return false;     

  10.         } 


转载于:https://my.oschina.net/u/1382022/blog/197007

你可能感兴趣的:(ConnectivityManager获取网络状态)