我正在使用UsageStatsManager API获取特定时间间隔的使用统计数据。如果使用预定义的间隔,即INTERVAL_DAILY、INTERVAL_WEEKLY、INTERVAL_MONTHLY、INTERVAL_YEARLY,所有这些都可以正常工作。但是,如果我想查看过去两三个小时的数据,我就会得到今天一整天的数据。我尝试过使用日历和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_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再次是INTERVAL_BEST。
我想知道是否有可能在这段时间内获得数据,也就是不到一天,因为INTERVAL_BEST还没有被适当的文档化来包含这些信息。任何帮助都将不胜感激,因为我被困在这个问题上。
发布于 2015-09-30 18:57:33
正如UsageStatsManager医生所说:
对时间间隔中间的数据的请求将包括该间隔。
似乎使用数据存储在存储桶中,最小存储桶是一天,所以您不能查询少于一天的使用状态。即使您查询某一天的一小时间隔,也会返回一整天的使用率统计数据。
https://stackoverflow.com/questions/30861658
复制相似问题