我需要獲得手機在2G網絡,3G網絡或數據斷開連接上花費的時間。 我搜索了android引用,但找不到任何解決方案。 有沒有什麼方法可以獲得這些統計數據?如何獲取連接/網絡使用時間android
我以爲使用偵聽器來檢測網絡/連接類型何時發生變化,並使用2G時間,3G時間和斷開連接時間的計數器。但我想知道是否有更好/更簡單的方法來解決這個問題。
我需要獲得手機在2G網絡,3G網絡或數據斷開連接上花費的時間。 我搜索了android引用,但找不到任何解決方案。 有沒有什麼方法可以獲得這些統計數據?如何獲取連接/網絡使用時間android
我以爲使用偵聽器來檢測網絡/連接類型何時發生變化,並使用2G時間,3G時間和斷開連接時間的計數器。但我想知道是否有更好/更簡單的方法來解決這個問題。
怎麼樣的連接檢查像
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" />
。
有沒有更好的辦法,TrafficStats只包含數據統計。您必須爲CONNECTIVITY_CHANGED意圖註冊BroadcastReceiver。 您還必須聽取電話啓動(RECEIVE_BOOT_COMPLETED)。 關機比較棘手。我會爲TIMER_TICK添加一個偵聽器,這會給你一分鐘的精確運行時間,這對於這個應用程序來說已經足夠了。您可以在啓動時處理此事件,減去最後一個網絡狀態計數器的停機時間。