Android - неактивность / активность независимо от топ приложения
Мне нужно выяснить, когда было последнее взаимодействие с пользователем, независимо от того, какое приложение находится сверху. Меня не волнует, где и чем было событие, мне просто нужно знать, когда оно было. Или, как вариант, я получаю событие.
Я пробовал несколько вещей:
Создайте сервис с окном и добавьте сенсорный слушатель. Это съело событие касания и не передавало этоИскал команду оболочки.getevent
работает (новая строка появляется каждый раз при получении касания), однако вам нужен root, и поэтому это не подходящее решение для меня.Искал "время до блокировки", но ничего не придумал.Также обратите внимание: здесь нет проблем с безопасностью, так как мне не нужна какая-либо идентифицирующая информация, такая как местоположение касания. Просто печать типа (или живое событие).
Я открыт для отражения, чтобы понять это.
@ user2558882 имеет очень хорошее решение. На данный момент это лучший подход, с которым я столкнулся.
Несмотря на то, что это здорово, пользователю все равно необходимо вручную включить наше приложение в элементах управления доступом. У нас есть клиенты с тысячами устройств, и у нас есть способ автоматически обновлять и изменять настройки. Мы стараемся свести ручную настройку к минимуму, но некоторые вещи все еще требуют ввода пользователя, например, включение режима администратора устройства. Таким образом, это решение приемлемо, однако я все еще открыт для способа, который не требует никакого пользовательского ввода для включения.
Я реализовал идею @ user2558882 об использовании сервиса специальных возможностей. Хотя другие идеи приветствуются.