android – queryUsageStats间隔持续时间

我正在使用UsageStatsManager API来获取特定时间间隔的使用情况统计信息.如果我使用预定义的间隔,即INTERVAL_DAILY,INTERVAL_WEEKLY,INTERVAL_MONTHLY,INTERVAL_YEARLY,则一切正常.但是,如果我想查看过去2或3个小时的数据,我将获得今天的数据.我尝试过使用Calendars和System.currentTimeMillis(),但是没有给我过滤结果.

日历方法:

Calendar startCalendar = Calendar.getInstance();
startCalendar.add(Calendar.HOUR_OF_DAY, -2);

Calendar endCalendar = Calendar.getInstance();

并将此传递给queryUsageStats方法,如下所示:

usageList = usm.queryUsageStats(interval, startCalendar.getTimeInMillis(), endCalendar.getTimeInMillis());

其中interval是INTERVAL_BEST.

System.currentTimeMillis()方法:

long startTime = System.currentTimeMillis() - 7200*1000 // 7200 seconds i.e. 2 hrs

long endTime = System.currentTimeMillis();

将此传递给queryUsageStats,就像上面一样:

usageList = usm.queryUsageStats(interval, startTime, endTime);

其中间隔是INTERVAL_BEST.

我想知道是否有可能获得此持续时间的数据,即不到一天,因为INTERVAL_BEST没有正确记录以包含此信息.任何帮助将不胜感激,因为我坚持这个问题.

最佳答案 正如
UsageStatsManager doc所说:

A request for data in the middle of a time interval will include that interval.

似乎使用数据存储在存储桶中,而最小存储桶是一天,因此您无法在不到一天的时间内查询使用情况统计信息.即使您查询特定日期的一小时间隔,也会返回整天的使用情况统计信息.

点赞