1

バックグラウンドでのデータ使用量を追跡するサービスを Android で作成したいと考えています。データ使用のイベントがキャプチャされると、詳細がローカル データベースに保存されます。

AndroidのTrafficStatsクラスについて読みましたが、アクティビティが開始されたときに1回だけチェックされます。継続的なバックグラウンド プロセスを実行したい。

サンプル プロジェクトも見つけました - https://github.com/commonsguy/cw-andtuning/tree/master/TrafficMonitor

投稿で述べたように - アプリのデータ使用量を測定する方法

前もって感謝します。

4

1 に答える 1

3

次のことを行う必要があります。

  • データ使用量の値を格納するローカル データベースを作成します。

  • データ使用量を計算/再計算するために継続的/定期的に実行されるサービスを開始します。

  • サービスによってデータ使用量が計算されたら、そのデータをデータ使用量テーブルに追加します。

ローカル データベースを作成するには、 sqliteに関するこのチュートリアルを参照できます。

サービスを開始する方法は次のとおりですAndroid でのサービスの作成

編集

新しいデータ使用が行われた場合に通知を受け取る方法はありません。継続的または定期的に実行されるサービスを使用して、定期的に確認する必要があります。

次のコードを使用して使用量を計算できます。

int UID=Process.myUid();
long recived = TrafficStats.getUidRxBytes(UID);
long send = TrafficStats.getUidTxBytes(UID);

要件に応じて使用できるその他の機能は次のとおりです。

long initialRX = TrafficStats.getTotalRxBytes();// recieved
long initialTx = TrafficStats.getTotalTxBytes();// sent
long initialMobRX = TrafficStats.getMobileRxBytes();
long initialMobTx = TrafficStats.getMobileTxBytes();

TrafficStatsは累積値を返すことに注意してください。したがって、使用量の増加量を知るには、inittail 値を減算する必要があります。

また、電話がシャットダウンされたときなど、プロセスが強制終了されるたびに、TrafficStats カウンターがリセットされます。したがって、それを処理するコードを追加する必要があります。

関連リンク:
TrafficStats Api android と 1 日のデータ使用量の計算

于 2013-08-01T09:39:34.017 に答える