我试图查询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;
}
Run Code Online (Sandbox Code Playgroud)
我有一个警报,每天在午夜之前触发并查询用户状态,然后存储返回的数据.起初一切似乎工作正常,我得到包结果和他们的活动时间,但是我添加了一个功能,每小时检查一次结果,这是我发现一个奇怪的发现.
结果UsageStatsManager似乎是在不同的时间重置,而不是在午夜,这是我所期望的,考虑到我INTERVAL_DAILY用作搜索参数.
根据我保存的数据包"时间"结果似乎重置(粗略时间):
我意识到封装时序重置之间存在相关性,但这是否意味着发生?
我已经看过以下线程了,我从中得到了很多信息: 如何使用UsageStatsManager?
因此:
Android UsageStatsManager产生错误的输出?
在评论中提到,返回的数据queryUsageStats不可信,并且返回随机结果.
我错过了一些简单的东西还是UsageStatsManager运作不正常?
java android usage-statistics activity-manager usagestatsmanager