0

2G ネットワーク、3G ネットワーク、またはデータ切断で電話が費やした時間を取得する必要があります。Androidのリファレンスを検索しましたが、解決策が見つかりませんでした。これらの統計を取得する方法はありますか?

リスナーを使用して、ネットワーク/接続の種類がいつ変化したかを検出し、2G 時間、3G 時間、切断時間のカウンターを使用することを考えました。しかし、これを解決するためのより良い/簡単な方法があるかどうか知りたい.

4

2 に答える 2

0

これ以上の方法はありません。TrafficStatsにはデータ統計のみが含まれます。CONNECTIVITY_CHANGEDインテントの BroadcastReceiver を登録する必要があります。電話の起動 (RECEIVE_BOOT_COMPLETED) もリッスンする必要があります。シャットダウンはよりトリッキーです。TIMER_TICK のリスナーを追加します。これにより、このアプリケーションには十分な正確なアップタイムが得られます。最後のネットワーク状態のカウンターからダウンタ​​イムを差し引いて、起動時にこれを処理できます。

于 2013-08-29T06:26:15.057 に答える
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" />マニフェストの を忘れない でください。

于 2013-08-29T06:20:32.713 に答える