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
не работает правильно?