首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UsageStatsManager返回前一天/周/月/年的数据?

UsageStatsManager返回前一天/周/月/年的数据?
EN

Stack Overflow用户
提问于 2014-11-12 17:02:25
回答 1查看 1.4K关注 0票数 7

我正在尝试从UsageStatsManager查询UsageStats。我构建了一个DateUtils类,它为我提供了获取每天/月/年(每周即将到来)的开始和结束时间的方法,如下所示:

代码语言:javascript
复制
public static Calendar getCal(int year, int month, int day) {
    Calendar cal = Calendar.getInstance();
    cal.set(year, month, day, 0, 0, 0);
    cal.set(Calendar.MILLISECOND, 0);
    return cal;
}

public static long getDayStart(int year, int month, int day) {
    return getCal(year, month, day).getTimeInMillis();
}

public static long getDayEnd(int year, int month, int day) {
    Calendar cal = getCal(year, month, day);
    cal.add(Calendar.DATE, 1);
    return cal.getTimeInMillis();
}

我使用这些长整型查询不同日期的UsageStats

代码语言:javascript
复制
 mUsageStats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, startTime, endTime);

我可以获取今天的数据,但前几天将返回一个空列表。

这是我用来获取数据的方法:

代码语言:javascript
复制
12 nov 2014, with type UsageStatsManager.INTERVAL_DAILY
startTime: 1415746800000
endTime: 1415833200000
mUsageStats size: 18

11 nov 2014, with type UsageStatsManager.INTERVAL_DAILY
startTime: 1415660400000
endTime: 1415746800000
mUsageStats size: 0

API中是否存在阻止我获取较旧数据的限制,或者我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2019-02-28 17:13:56

您可以使用如下所示的正确毫秒的queryAndAggregateUsageStats()方法,从您想要的任何日期(在边界集here内)获取使用情况统计数据:

代码语言:javascript
复制
UsageStatsManager mUsageStatsManager = (UsageStatsManager) getSystemService(Context.USAGE_STATS_SERVICE);
if(mUsageStatsManager != null){
    Calendar beginCal = Calendar.getInstance();
    beginCal.add(Calendar.DATE, -1); // get yesterdays data
    Calendar  endCal = Calendar.getInstance();

    Map<String, UsageStats> queryUsageStats = mUsageStatsManager.queryAndAggregateUsageStats(beginCal.getTimeInMillis(), endCal.getTimeInMillis());
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26882956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档