Как определить, что приложение используется пользователем (в android)? - PullRequest
0 голосов
/ 23 мая 2011

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

1 Ответ

2 голосов
/ 23 мая 2011

Я не знаю, ссылался ли Крис на это в комментарии, и я не знаю, насколько это надежно, но вы можете перебрать список, возвращаемый ActivityManager # getRunningAppProcesses () :

public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses ()

С: Уровень API 3

Возвращает список процессов приложения, запущенных на устройстве.

Возвращает список RunningAppProcessInfo записей или ноль, если нет запущенных процессов (пустой список не возвращается). Этот список не указан.

Затем проверьте поле важности каждого ActivityManager.RunningAppProcessInfo:

public int importance

С: Уровень API 3

Относительный уровень важности, который система придает этому процессу. Может быть одним из IMPORTANCE_FOREGROUND, IMPORTANCE_VISIBLE, IMPORTANCE_SERVICE, IMPORTANCE_BACKGROUND или IMPORTANCE_EMPTY. Эти константы пронумерованы, так что «более важные» значения всегда меньше, чем «менее важные» значения.

Вы можете проводить сервисный опрос каждые 30 секунд или около того и регистрировать эти значения.

(Кстати, вы хотите найти эти IMPORTANCE_FOREGROUND и IMPORTANCE_VISIBLE)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...