Android ConnectivityManager類
阿新 • • 發佈:2018-11-11
相關文章
Android BatteryManager類
Android TelephonyManager類
Android ConnectivityManager類
Android Vibrator類
1. ConnectivityManager類
ConnectivityManager類用來判斷網路服務
ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); NetworkInfo networkInfo = cm.getActiveNetworkInfo();
通過NetworkInfo的狀態來判斷聯網狀態,isAvailable()
聯網是否就緒,isConnected()
是否已經連結。
networkInfo != null && networkInfo.isAvailable() && networkInfo.isConnected();
NetworkInfo其他方法
-
getType(), 網路型別
ConnectivityManager.TYPE_MOBILE ConnectivityManager.TYPE_WIFI
-
isRoaming(),是否漫遊
-
getState(),獲取連線狀態
-
getDetailedState(),獲取詳細狀態
-
isFailover(),是否連線失敗。
需要許可權
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2. 監聽網路狀態
通過廣播監聽網路狀態,action
為ConnectivityManager.CONNECTIVITY_ACTION
。
@Override protected void onResume() { super.onResume(); registerReceiver(mReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); } @Override protected void onPause() { super.onPause(); unregisterReceiver(mReceiver); }
自定義BroadcastReceiver
來捕捉網路狀態變化
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
}
}
};