2013-08-29 31 views
0

我需要獲得手機在2G網絡,3G網絡或數據斷開連接上花費的時間。 我搜索了android引用,但找不到任何解決方案。 有沒有什麼方法可以獲得這些統計數據?如何獲取連接/網絡使用時間android

我以爲使用偵聽器來檢測網絡/連接類型何時發生變化,並使用2G時間,3G時間和斷開連接時間的計數器。但我想知道是否有更好/更簡單的方法來解決這個問題。

回答

0

怎麼樣的連接檢查像

public boolean isOnline() { 
     // check if an internet connection is present 
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
     if (!(netInfo != null && cm.getActiveNetworkInfo().isAvailable() && cm 
       .getActiveNetworkInfo().isConnected())) { 

      return false; 
     } 
     return true; 
    } 

然後計算時間......

不要忘記在清單中<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

0

有沒有更好的辦法,TrafficStats只包含數據統計。您必須爲CONNECTIVITY_CHANGED意圖註冊BroadcastReceiver。 您還必須聽取電話啓動(RECEIVE_BOOT_COMPLETED)。 關機比較棘手。我會爲TIMER_TICK添加一個偵聽器,這會給你一分鐘的精確運行時間,這對於這個應用程序來說已經足夠了。您可以在啓動時處理此事件,減去最後一個網絡狀態計數器的停機時間。