Получайте UsageStats изо дня в день с Android Studio - PullRequest
0 голосов
/ 05 апреля 2020

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

...