queryUsageStats间隔持续时间

gau*_*ain 5 android usagestatsmanager

我正在使用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();
Run Code Online (Sandbox Code Playgroud)

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

usageList = usm.queryUsageStats(interval, startCalendar.getTimeInMillis(), endCalendar.getTimeInMillis());
Run Code Online (Sandbox Code Playgroud)

间隔为INTERVAL_BEST。

System.currentTimeMillis()方法:

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

long endTime = System.currentTimeMillis();
Run Code Online (Sandbox Code Playgroud)

像上面一样将其传递给queryUsageStats:

usageList = usm.queryUsageStats(interval, startTime, endTime);
Run Code Online (Sandbox Code Playgroud)

间隔再次为INTERVAL_BEST。

我想知道是否有可能在此期间(即不到一天)获取数据,因为尚未对INTERVAL_BEST进行适当记录以包含此信息。任何帮助将不胜感激,因为我被困在这个问题上。

Max*_*x77 4

正如UsageStatsManager文档所说:

时间间隔中间的数据请求将包括该间隔。

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