次のことを行う必要があります。
データ使用量の値を格納するローカル データベースを作成します。
データ使用量を計算/再計算するために継続的/定期的に実行されるサービスを開始します。
サービスによってデータ使用量が計算されたら、そのデータをデータ使用量テーブルに追加します。
ローカル データベースを作成するには、 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 日のデータ使用量の計算