На Android UsageEvents.Event getClass().getName() возвращает только событие android.app.usage.UsageEvents$, а не имя
Я пытаюсь получить использование в моем приложении для Android. Android предлагает пакет, чтобы получить эту информацию. Чтобы получить события, мне нужно установить время и получить список событий из разных приложений, меня интересуют только события из моего собственного приложения.
UsageStatsManager usm = (UsageStatsManager)context.getSystemService(USAGE_STATS_SERVICE);
Calendar calendar = Calendar.getInstance();
long endTime = calendar.getTimeInMillis();
calendar.add(Calendar.WEEK_OF_YEAR, -1);
long startTime = calendar.getTimeInMillis();
List<UsageStats> luStats = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,startTime,endTime);
while (uEvents.hasNextEvent()){
UsageEvents.Event e = new UsageEvents.Event();
uEvents.getNextEvent(e);
if (e != null){
Log.d(TAG, "Event: " + e.getPackageName() + "\t" +e.getClass().getName()+ "\t" + dateFormat.format(new Date (e.getTimeStamp())));
}
}
Проблема в том, что результат от e.getClass().getName()
это не имя класса, который был использован, а просто android.app.usage.UsageEvents$Event
, Что я делаю неправильно? Как я могу получить имя класса из события?
Любая подсказка ценится!
1 ответ
Решение
Я нашел свою ошибку.
Метод, который мне нужен был getClassName()
вместо getClass().getName()
, Я изменил это на Событии e
и я мог бы получить все классы, которые искали.