获取Android数据使用历史的最深入细节 我需要获取安卓设备的数据使用历史记录。

获取Android数据使用历史的最深入细节 我需要获取安卓设备的数据使用历史记录。,android,linux,network-programming,Android,Linux,Network Programming,我可以拥有以下哪些功能?怎么做? 1-Daily data usage or even hourly. 2-From the last device data wipe date to now. 3-Contains application details. 注意 在旧时代,我想在不监视设备的情况下捕获设备的数据使用情况。当时我知道的唯一方法是在后台使用服务捕获所有东西,我认为这会占用大量CPU。(这是当时唯一的出路) 为了回答其他可能看到它的人的问题,我应该说如下 从API 23中有一

我可以拥有以下哪些功能?怎么做?

1-Daily data usage or even hourly.

2-From the last device data wipe date to now.

3-Contains application details.
注意
在旧时代,我想在不监视设备的情况下捕获设备的数据使用情况。当时我知道的唯一方法是在后台使用服务捕获所有东西,我认为这会占用大量CPU。(这是当时唯一的出路)

为了回答其他可能看到它的人的问题,我应该说如下

  • 从API 23中有一个函数称为 我能做到这一点。我还应该链接到和
  • 根据google文档,您可以获得Long.MIN_值和Long.MAX_值之间任何时间段的数据使用情况

    查询可以以开始和结束的形式定义时间间隔 时间戳(Long.MIN_值和Long.MAX_值可用于模拟 开放式间隔)

  • 您可以根据UID对其他应用程序的使用情况进行分类,然后转到包名等()

  • 如中所示,有5种方法可以做到这一点

    摘要查询

    querySummaryForDevice(int、String、long、long)

    querySummaryForUser(int、String、long、long)

    查询摘要(int、String、long、long)

    这些查询聚合整个时间间隔内的网络使用情况。 因此,对于特定的密钥状态,只有一个bucket, 计量和漫游组合。在用户范围内和 设备范围内汇总包含总计网络的单个存储桶 返回使用情况

    历史查询

    QueryDetailsFruid(int,String,long,long,int)

    queryDetails(int、String、long、long)

    这些查询不会随时间聚合,但会随状态聚合, 计费和漫游。因此,一个存储单元可以有多个存储桶 特别关键。但是,所有存储桶都将具有状态 NetworkStats.Bucket.STATE\u全部,默认网络 NetworkStats.Bucket.DEFAULT\u NETWORK\u ALL,已计量 NetworkStats.Bucket.METERED\u全部,漫游 NetworkStats.Bucket.ROAMING\u所有

I don't want to monitor and save data usage history.

I want to have it all after installing the application.

**Please** tell if there is more than one way And also if thy need Root access 
Or if they work on a specific API version.