2015-04-08 2 views
1

Я пытаюсь создать приложение с возможностью его отображения на экране блокировки при нажатии физической кнопки питания, например, 2 раза в быстрой последовательности или при длительном нажатии.Android - использование кнопки питания в качестве триггера для запуска приложения

До сих пор я понял, что мне нужно a-

1) Услуги- мне нужна услуга, которая должна перехватывать кнопки питания, нажав 2 раза/длинный PRESS- ли устройство заблокировано или не 2) RECEIVER - User Broadcast Receiver для захвата трансляции из службы и запуска моего основного действия.

Много вопросов на SO похожи, но ни один из них не решить, как это сделать because- Служба не может иметь методы для обнаружения ключевых событий & в результате нужно найти какой-то другой способ, чтобы выяснить, когда кнопка питания нажатие. Предлагаемая альтернатива - использовать SCREEN ON и SCREEN OFF. Но использование их вызывает проблему, если служба работает в фоновом режиме, и экран пробуждается каким-то другим приложением, например, входящим вызовом.

Я видел несколько приложений, которые используют кнопку питания для запуска приложений или активности. 1) Нажмите https://play.google.com/store/apps/details?id=com.incrediapp.press.it.macro.creator.time.saver&hl=en It-кнопка 2) Мощность Flashlight- https://play.google.com/store/apps/details?id=com.brink.powerbuttonflashlight&hl=en

Любые идеи о том, как начать приложение/деятельность по нажатию кнопки питания? И затем покажите это на экране блокировки.

ответ

0

Короткий ответ: Вы не можете! Система не строилась именно так.

Как никогда много раз, когда кто-то говорит: «Вы не можете» он на самом деле означает, что вы не можете без взлома его ...

Так вот идея для хака для вас:

Как вы упомянули, службы не могут прослушивать ключевые события, но активность может. Так что ваш ответ - это ваша деятельность.

Запустите свою деятельность, когда экраны погаснут, и убейте ее, когда она вернется. Также сделайте его прозрачным на случай, если вы выйдете из синхронизации, и вы не хотите, чтобы вас заметили.

Теперь у вас есть более легкая задача решить, как вызвать кнопку питания изнутри вашей деятельности.

Смежные вопросы