Android 檢查網路連線 (Check network connection)

Network Connection

在執行網路下載任務之前,必須先確認網路連線是否正常,之後才能執行下載任務。最快的做法就是直接檢查網路是否已連線。

使用權限

先新增專案的使用權限 (AndroidManifest.xml):
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

檢查網路是否已連線

private boolean isConnected(){
  ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
  NetworkInfo networkInfo = cm.getActiveNetworkInfo();
  if (networkInfo != null && networkInfo.isConnected()) {
    return true;
  }
  return false;
}
接著只要呼叫該方法即可:
if (isConnected()) {
  Log.d("NetworkConnection", "Network Connected.");
  //執行下載任務
}else{
  Log.d("NetworkConnection", "No network connection available.");
  //告訴使用者網路無法使用
}
在確定有連線的情況下,才執行下載任務,否則就要告訴使用者網路無法使用,必須開啟或做其他處理。

參考資料:

http://developer.android.com/training/basics/network-ops/connecting.html
本文網址:https://blog.tonycube.com/2014/09/android-check-network-connection.html
Tony Blog 撰寫,請勿全文複製,轉載時請註明出處及連結,謝謝 😀

3 則留言

  1. 先真的感謝Tony .... 寫了這一篇 QQ
    只是不知道為什麼 getSystemService()這個函式程式一直不認識?
    下面畫了紅線 游標移上去是要我定義這個函示

    回覆刪除
    回覆
    1. http://developer.android.com/reference/android/content/Context.html#getSystemService(java.lang.String)

      getSystemService() 這個方法定義在 Context 中,所以必須是它本身或子類別才能呼叫,例如 Activity

      刪除
    2. 明白了!!!
      剛剛也成功解決我的問題
      謝謝 :)

      刪除

留言小提醒:
1.回覆時間通常在晚上,如果太忙可能要等幾天。
2.請先瀏覽一下其他人的留言,也許有人問過同樣的問題。
3.程式碼請先將它編碼後再貼上。(線上編碼:http://bit.ly/1DL6yog)
4.文字請加上標點符號及斷行,難以閱讀者恕難回覆。
5.感謝您的留言,您的問題也可能幫助到其他有相同問題的人。