在執行網路下載任務之前,必須先確認網路連線是否正常,之後才能執行下載任務。最快的做法就是直接檢查網路是否已連線。
使用權限
先新增專案的使用權限 (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
本文網址:http://blog.tonycube.com/2014/09/android-check-network-connection.html
由 Tony Blog 撰寫,請勿全文複製,轉載時請註明出處及連結,謝謝 😀
由 Tony Blog 撰寫,請勿全文複製,轉載時請註明出處及連結,謝謝 😀
先真的感謝Tony .... 寫了這一篇 QQ
回覆刪除只是不知道為什麼 getSystemService()這個函式程式一直不認識?
下面畫了紅線 游標移上去是要我定義這個函示
http://developer.android.com/reference/android/content/Context.html#getSystemService(java.lang.String)
刪除getSystemService() 這個方法定義在 Context 中,所以必須是它本身或子類別才能呼叫,例如 Activity
明白了!!!
刪除剛剛也成功解決我的問題
謝謝 :)