如果我想获取今天的应用程序使用情况的数据,首先我允许我的应用程序从设置中读取应用程序使用统计信息,然后我使用这个查询获取UsageStats
UsageStatsManager usm = (UsageStatsManager) context.getSystemService("usagestats");(我正在编程计算startTimeStamp和endTimeStamp,但这里是硬编码的示例)。
long startTimeStamp = 1452124800000; // today's Morning 12:00:00 AM
long endTimeStamp= 1452211199000; // today's Night 11:59:59 PM
List<UsageStats> usageStatsList = usm.queryUsageStats(UsageStatsManager.INTERVAL_BEST, startTimeStamp, endTimeStamp);我成功地从UsageStatsManager.获得了正确的数据
但是,如果我使用相同的查询来获取昨天的应用程序使用的数据,我只需将startTimeStamp和endTimeStamp值更改为昨天的TimeStamp值。
我不会从UsageStatsManager.那里得到任何数据它会给我一个空的列表。
我还通过将intervalType更改为UsageStatsManager.INTERVAL_DAILY来尝试相同的查询。但是,我仍然从Android UsageStatsManager获得了空数据。
有没有办法获取前一天的应用程序使用数据??
发布于 2019-02-28 09:10:13
通过使用具有正确毫秒的这里方法,您可以从您想要的任何日期(在讨论的queryAndAggregateUsageStats()范围内)获得使用情况统计数据,如下所示:
UsageStatsManager mUsageStatsManager = (UsageStatsManager) getSystemService(Context.USAGE_STATS_SERVICE);
if(mUsageStatsManager != null){
Calendar beginCal = Calendar.getInstance();
beginCal.add(Calendar.DATE, -1);
Calendar endCal = Calendar.getInstance();
Map<String, UsageStats> queryUsageStats = mUsageStatsManager.queryAndAggregateUsageStats(beginCal.getTimeInMillis(), endCal.getTimeInMillis());
}https://stackoverflow.com/questions/34649881
复制相似问题