2013年4月4日 星期四

Android程式設計 - 檢查網路連線狀態

在開發行動網路應用程式時,首要的工作便是判斷手機目前是否已連線。首先必須在AndroidManifest.xml檔中宣告ACCESS_NETWORK_STATE的使用權限:

<!-- 檢測網路狀態之權限 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

所有可用網路連線資訊都儲存在ConnectivityManager實體中,程式中只要使用getSystemService(Context.CONNECTIVITY_SERVICE)方法即可取得ConnectivityManager實體。

之後可使用getActiveNetworkInfo()方法取得目前作用中的網路資訊,當傳回值不為null表示有可用的網路,就可進一步檢查網路連線狀態。

  private boolean isConnectingToInternet(){
     ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
     if (connMgr != null)
     {
       NetworkInfo info = connMgr.getActiveNetworkInfo();
       if (info != null)
          return (info.isConnected());
     }
     return false;
  }