我正在开发一个显示 Android 设备上使用的应用程序的使用情况统计信息的应用程序。我要专门做的是按天划分使用时间。所以本质上,最终目标是有一个条形图,每一列是一天的总使用时间。
我已经实施了用法
private long getWeekStartTime() {
Calendar calendar = Calendar.getInstance();
// Set it to 7 days prior
calendar.add(Calendar.DAY_OF_YEAR, -7);
return calendar.getTimeInMillis();
}
private long getEndTime(){
// Set end time to Now
return System.currentTimeMillis();
}
public void retrieveWeekUsageStats(){
List<UsageStats> usageStats = usageStatsManager.queryUsageStats(INTERVAL_DAILY,getWeekStartTime(), getEndTime());
for (UsageStats stat: usageStats) {
Log.d(TAG, "retrieveWeekUsageStats: " + stat.getPackageName() + " " + stat.getFirstTimeStamp() +" " + stat.getLastTimeStamp());
}
}
使用上面的代码,我可以注销大量最近使用过的包,但所有的包和日期都是混合的。
我将 UsageStatsManager 中的时间间隔设置为 INTERVAL_DAILY,希望它将包使用的时间间隔分开,但它只是以随机顺序吐出所有内容。按天将此列表分类为块的最佳方法是什么?
我还尝试将 INTERVAL_DAILY 调整为 INTERVAL_WEEKLY 无济于事。