Как узнать, как долго действие активно на переднем плане на Android

Как получить количество времени, в течение которого действие было на переднем плане в Android. Для экс. Если сегодня WhatsApp использовался 1 час, как сделать, чтобы WhatsApp был активен в течение одного часа программно.


person Aneez    schedule 10.12.2016    source источник
comment
Используйте метод Timer в onStart(). Остановите таймер в onStop() и сохраните время где-нибудь.   -  person Sharp Edge    schedule 10.12.2016


Ответы (2)


API статистики использования приложений позволяет разработчикам приложений собирать статистика использования приложений. Этот API предоставляет более подробную информацию об использовании, чем метод устаревший getRecentTasks().

Чтобы использовать этот API, вы должны сначала объявить разрешение android.permission.PACKAGE_USAGE_STATS в своем манифесте. Пользователь также должен разрешить доступ для этого приложения через Settings > Security > Apps with usage access.

Чтобы собрать статистику использования приложения, вам нужно сначала получить экземпляр UsageStatsManager с помощью следующего кода:

mUsageStatsManager = (UsageStatsManager) getActivity()
       .getSystemService(Context.USAGE_STATS_SERVICE);

Затем вы можете получить статистику использования приложения следующим способом:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, -1);
List<UsageStats> queryUsageStats = mUsageStatsManager
        .queryUsageStats(UsageStatsManager.INTERVAL_DAILY, cal.getTimeInMillis(),
                System.currentTimeMillis());

Первый аргумент queryUsageStats() используется для временного интервала, по которому агрегируется статистика. Второй и третий аргументы используются для указания начала и конца диапазона статистики для включения в результаты.

Вот базовый код приложения на GitHub, показывающий, как использовать API статистики использования приложений, чтобы пользователи могли собирать статистика использования приложений.

Примечание. android.app.usage требуется уровень API 21 или выше.

person Priyank Patel    schedule 10.12.2016

В Android есть встроенный инструмент для этого под названием "dumpsys".
Большинство его функций предназначены для разработчиков, использующих ADB, но для ваших целей вам следует изучить UsageStatsManager, который предоставит вам необходимые данные о других приложениях.

person Nir Duan    schedule 10.12.2016