Я работаю над приложением, которое отображает статистику использования для приложений, используемых на устройстве 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, но безрезультатно.