1. 程式人生 > >Android ConnectivityManager類

Android ConnectivityManager類

相關文章
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. 監聽網路狀態

通過廣播監聽網路狀態,actionConnectivityManager.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)) {
        }
    }
};