Различить время ожидания экрана и нажатие кнопки питания? - PullRequest
8 голосов
/ 04 мая 2010

мое приложение что-то делает, когда экран становится черным, но я хочу, чтобы оно выполняло эту задачу, только если экран был выключен «сам по себе», через тайм-аут экрана - НЕ когда пользователь нажимает кнопку питания. Есть ли способ отличить эти два события?

ACTION_SCREEN_OFF очевидно срабатывает в обоих случаях, и я не нашел других намерений, которые могли бы соответствовать тому, что я ищу.

Ответы [ 4 ]

4 голосов
/ 15 мая 2010

На нижнем уровне происходит событие, когда экран отключается, посмотрите на "adb logcat", и вы увидите его, копайте оттуда.

1 голос
/ 23 мая 2013

Это забавный вопрос :) Хотя он и не точный, вы можете попробовать отобрать время с момента последнего касания пользователя и до того момента, когда ваша активность перейдет в режим паузы - и посмотрите, соответствует ли оно времени ожидания экрана .

1 голос
/ 23 мая 2013

Сервисы не могут напрямую обрабатывать события кнопок. Возможно, вы можете сделать так, чтобы ваша активность зарегистрировала получателя широковещательной рассылки, чтобы получать уведомления при выключении экрана, а затем попросить активность проверить последнюю нажатую клавишу, чтобы увидеть, была ли это кнопка питания - если это не так, вы можете отправить вещайте на ваш сервис и работайте так, как вам хочется.

0 голосов
/ 06 мая 2010

Можете ли вы прослушать событие клавиатуры KEYCODE_POWER? Это может делать то, что вы хотите. (Но порядок, в котором это и ACTION_SCREEN_OFF поступают, может быть не гарантирован).

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