Android: UsageStatsManager не возвращает правильные ежедневные результаты

Я пытаюсь запроситьUsageStats отUsageStatsManagerс целью возврата всех пакетов приложений, которые использовались ежедневно и как долго.

Код:

public static List<UsageStats> getUsageStatsList(Context context){
    UsageStatsManager usm = getUsageStatsManager(context);
    Calendar calendar = Calendar.getInstance();
    long endTime = calendar.getTimeInMillis();
    calendar.add(Calendar.DAY_OF_YEAR, -1);
    long startTime = calendar.getTimeInMillis();

    List<UsageStats> usageStatsList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,startTime, endTime);
    return usageStatsList;
}

У меня есть сигнал тревоги, который срабатывает ежедневно незадолго до полуночи, запрашивает данные об использовании, а затем сохраняет возвращенные данные. Сначала все, казалось, работало нормально, и я получал результаты пакетов и их активное время, однако я добавил функцию, которая проверяла бы результаты ежечасно, и тут я сделал странное открытие.

Результаты отUsageStatsManagerказалось, сбрасывается в разное время, а не в полночь, что я и ожидал, учитывая, что я использовалINTERVAL_DAILY в качестве параметра поиска.

Исходя из данных, которые я сохранил, пакет «время» результаты сбрасываются в (Грубые сроки):

3 утраполуденный3 вечераполуночный

Я понимаю, что существует корреляция между моментами сброса времени пакета, но должно ли это произойти?

Я уже видел следующую ветку, и именно там я получил много информации:Как использовать UsageStatsManager?

Как следствие:Android UsageStatsManager производит неправильный вывод? В комментариях упоминается, что данные вернулись сqueryUsageStats нельзя доверять и случайные результаты возвращаются.

Я скучаю по чему-то простому илиUsageStatsManager не работает правильно?

Ответы на вопрос(4)

Ваш ответ на вопрос