android之ConnectivityManager簡介,網絡連接狀態

/**
  * 測試ConnectivityManager
  * ConnectivityManager主要管理和網絡連接相關的操作
  * 相關的TelephonyManager則管理和手機、運營商等的相關信息;WifiManager則管理和wifi相關的信息。
  * 想訪問網絡狀態,首先得添加權限<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
  * 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));
  

 }


(注意:上面的代碼只是示例,直接運行的話有待修改。)

上面判斷網絡類型的方法只是爲了展示用法,其實完全可以通過networkInfo.getType()的返回值來判斷。

 如:


Context context = listActivity.getApplicationContext();//獲取應用上下文
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);//獲取系統的連接服務
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();//獲取網絡的連接情況
if(activeNetInfo.getType()==ConnectivityManager.TYPE_WIFI){
//判斷WIFI網
}else if(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE) {
//判斷3G網
}


NetWorkInfo類的主要方法示例:



getDetailedState():獲取詳細狀態。

getExtraInfo():獲取附加信息。 

 getReason():獲取連接失敗的原因。

getType():獲取網絡類型(一般爲移動或Wi-Fi)。 

 getTypeName():獲取網絡類型名稱(一般取值“WIFI”或“MOBILE”)。

 isAvailable():判斷該網絡是否可用。

 isConnected():判斷是否已經連接。 

 isConnectedOrConnecting():判斷是否已經連接或正在連接。

 isFailover():判斷是否連接失敗。

isRoaming():判斷是否漫遊




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章