gpt4 book ai didi

android - UsageStatsManager 仅从最后一天/一周/一个月/一年返回数据?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:10 25 4
gpt4 key购买 nike

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

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();
}

我正在使用这些 long 来查询不同日期的 UsageStats:

 mUsageStats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, startTime, endTime);

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

这是我用来获取数据的:

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 中是否存在阻止我获取旧数据的限制,或者我做错了什么?

最佳答案

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

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());
}

关于android - UsageStatsManager 仅从最后一天/一周/一个月/一年返回数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26882956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com