2011-10-08 25 views
0

可能重複:
Android service to check internet connectivity?如何在android中編寫後臺服務來檢查設備是否連接到互聯網?

我設計的Android應用程序跟蹤的總數據使用(下載+上傳)。 該應用程序執行以下任務: -

  1. 連續檢查設備是否連接到互聯網。
  2. 如果設備連接到互聯網然後開始計數上載和下載的數據。
  3. 的計數存儲在數據庫中,並顯示給用戶當前會話。
  4. 安裝應用程序後,應該啓動服務。
  5. 當設備重新啓動時,該服務應啓動。

我試過下面的代碼,但我們這足夠嗎?

public final boolean isInternetOn() 
{ 
    ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
    // ARE WE CONNECTED TO THE NET 
    if( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED || 
      connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTING || 
      connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING || 
      connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED ) 
    { 
     // MESSAGE TO SCREEN FOR TESTING (IF REQ) 
     //Toast.makeText(this, connectionType + †connectedâ€, Toast.LENGTH_SHORT).show(); 
     return true; 
    } 
    else 
    { 

     if( connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED || 
       connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED ) 
     { 
      //System.out.println(“Not Connectedâ€); 
      return false; 
     } 
     return false; 
    } 
} 

任何幫助將非常滿意!

-Vaibhav。

+2

您可能想嘗試[this](http://stackoverflow.com/questions/2789612/how-can-i-check-whether-an-android-device-is-connected-to-the-web) – Neo

+1

檢查此[鏈接] [1]ü可能需要廣播,而不是服務 [1]:http://stackoverflow.com/questions/3141807/android-service-to-check-internet-connectivity –

回答

3

連續檢查設備是否連接到互聯網。

請不要。這不是你的用例需要的。

安裝應用程序時應該啓動服務。

這不支持Android。這也不是你的用例需要的。

當設備重新啓動時,服務應該啓動。

這不是您的用例需要的。

採用TrafficStats不需要永遠的服務。請定期記錄TrafficStats的值,或許使用AlarmManager,這樣您就不需要將內容全部保存在內存中。

+0

非常感謝! –

相關問題