我试图从 查询UsageStats
,UsageStatsManager
目的是返回每天使用的所有应用程序包以及使用了多长时间。
编码:
public static List<UsageStats> getUsageStatsList(Context context){
UsageStatsManager usm = getUsageStatsManager(context);
Calendar calendar = Calendar.getInstance();
long endTime = calendar.getTimeInMillis();
calendar.add(Calendar.DAY_OF_YEAR, -1);
long startTime = calendar.getTimeInMillis();
List<UsageStats> usageStatsList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,startTime, endTime);
return usageStatsList;
}
我有一个警报,每天在午夜之前触发并查询的使用情况,然后存储返回的数据。起初一切似乎都工作正常,我得到了包结果和它们的活动时间,但是我添加了一个每小时检查一次结果的功能,在这里我发现了一个奇怪的发现。
结果似乎在不同时间重置,而不是在午夜,考虑到我将其用作搜索参数UsageStatsManager
,这是我所期望的。INTERVAL_DAILY
从我保存包“时间”的数据来看,结果似乎正在重置(大致时间):
- 凌晨3点
- 正午
- 下午 3 点
- 午夜
我意识到包裹时间重置时间之间存在相关性,但这是否意味着发生?
我已经看过以下线程,我从中获得了很多信息: 如何使用 UsageStatsManager?
因此:
Android UsageStatsManager 产生错误的输出?
在评论中提到返回的数据queryUsageStats
不可信,并且正在返回随机结果。
我是否遗漏了一些简单的东西或UsageStatsManager
无法正常运行?