我想获得一些关于在日期间隔之间获取3G数据统计数据的帮助。
据我所知,我应该使用TrafficStats
(Android api 2.2或更高版本)。我想将此信息保存到SQLite表中,以便每月显示应用程序的统计信息:
间隔日期:01/01/2012 - 31/01/2012
谷歌地图 - 1,5 Mb
Google Talk - 0,9 Mb
Facebook应用程序 - 5,6 Mb
所以,我想我应该使用后台服务。这是最好的方法吗?我该如何尝试在后台服务中执行此操作?您认为我应该如何在SQLite中保存信息?
答案 0 :(得分:2)
(@ Pabloku,对不起这个答案来得太晚了,希望它仍然会有所帮助)
首先,如果您希望获得各个应用的流量统计信息,但仅限于3G,则无法使用公共API。 Android提供TrafficStats.getUidTxBytes(int)
和TrafficStats.getUidRxBytes(int)
作为公共API来获取应用程序使用的总字节数,但没有(公共)通过接口将它们分开。
假设这不会破坏你的一天,这里有一个伪代码算法,用于完成你提到的其余部分:
AlarmManager
)作为范围的开头,并存储这些值(可能是在数据库中)。原因:您可能需要将这些现有的TrafficStats
值减去偏移量,如果它们是>您的日期范围开始时为0。BroadcastReceiver
以接收ACTION_SHUTDOWN。BroacastReceiver
中,请在关机时记下您的应用的TrafficStats
。原因:TrafficStats
将在每次重启时重置。
TrafficStats
,然后添加之前收集的所有统计信息