ВОПРОС О БЕЗОПАСНОСТИ: Я не понимаю, как это происходит, но читатели этих вопросов приходят к мысли, что решения этой проблемы представляют угрозу безопасности. Поэтому, пожалуйста, имейте в виду, что все данные, которые меня интересуют, измеряют время пользователя в / активности. Это все. Что сделал пользователь – я НЕ заинтересован вообще!
Мне нужна очень простая концепция, но я не могу найти решение. Я хотел бы запустить процесс (в фоновом режиме) и прослушать пользовательский интерфейс.
Таким образом, пользователь прикасается к экрану -> мой метод запускается.
Пользователь разблокирует телефон -> мой метод запускается.
Типы пользователей на физической клавиатуре -> мой метод запускается.
Короче говоря, мой метод НЕ запускается, когда телефон лежит на столе 🙂 Обратите внимание, что взаимодействие со всем телефоном, а не с моим приложением, и мне неинтересно, что пользователь набрал букву «K», я Даже не интересовался тем, что пользователь набрал что-то, все, что меня волнует, это то, что пользователь каким-то образом использовал телефон.
Btw. Состояние, когда пользователь гуляет, слушая музыку (телефон в кармане) – это НЕ взаимодействие.
Я ищу триггер – что-то вроде INTERACTION_DETECTED
или (наоборот) метод обратного вызова, который установлен как reportInactiveUser(10*1000)
и он будет вызываться, если пользователь неактивен в течение 10 секунд.
ВОПРОС, как определить взаимодействие пользователя?
Цель: измерить время использования вручную телефона.
Я узнал, что BatteryStatsImpl
может хранить нужные мне данные. Экземпляр его хранится в BatteryStatsService
, который, однако, не дает ему доступа, только IBatteryStats
который, в свою очередь, имеет только один интересный метод – getStatistics
а на выходе не включаются счетчики активности пользователя (или все они нули; Все разрешения). Итак, до сих пор – невезение.
Все вызовы должны быть сделаны путем отражения, потому что эти классы не доступны в любом случае ;-).
Вы хотите перехватить физическое взаимодействие с телефоном для этого.
Для экранов экрана этот пакет пригодится. * Вы можете использовать это для прослушивания жестов на экране.
Для физических касаний кнопок я предлагаю вам взглянуть на это .