2G ネットワーク、3G ネットワーク、またはデータ切断で電話が費やした時間を取得する必要があります。Androidのリファレンスを検索しましたが、解決策が見つかりませんでした。これらの統計を取得する方法はありますか?
リスナーを使用して、ネットワーク/接続の種類がいつ変化したかを検出し、2G 時間、3G 時間、切断時間のカウンターを使用することを考えました。しかし、これを解決するためのより良い/簡単な方法があるかどうか知りたい.
2G ネットワーク、3G ネットワーク、またはデータ切断で電話が費やした時間を取得する必要があります。Androidのリファレンスを検索しましたが、解決策が見つかりませんでした。これらの統計を取得する方法はありますか?
リスナーを使用して、ネットワーク/接続の種類がいつ変化したかを検出し、2G 時間、3G 時間、切断時間のカウンターを使用することを考えました。しかし、これを解決するためのより良い/簡単な方法があるかどうか知りたい.
これ以上の方法はありません。TrafficStatsにはデータ統計のみが含まれます。CONNECTIVITY_CHANGEDインテントの BroadcastReceiver を登録する必要があります。電話の起動 (RECEIVE_BOOT_COMPLETED) もリッスンする必要があります。シャットダウンはよりトリッキーです。TIMER_TICK のリスナーを追加します。これにより、このアプリケーションには十分な正確なアップタイムが得られます。最後のネットワーク状態のカウンターからダウンタイムを差し引いて、起動時にこれを処理できます。
のような接続チェックはどうですか
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" />
マニフェストの を忘れない でください。