1

我想在android中编写一个服务,它将在后台跟踪数据使用情况。当捕获到数据使用事件时,我会将详细信息保存在本地数据库中。

我在 android 中阅读了有关 TrafficStats 类的信息,但它只会在活动开始时检查一次。我想要一个连续的后台进程运行。

我什至找到了一个示例项目 - 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 返回一个累积值。因此,您必须减去初始值才能知道使用量的增量

每当进程被杀死时, TrafficStats计数器也会重置。例如,当手机关闭时。因此,您将不得不添加代码来处理它。

相关链接:
TrafficStats Api android 和每日数据使用量的计算

于 2013-08-01T09:39:34.017 回答