Как я могу получать события аппаратных клавиш в спящем режиме? - PullRequest
3 голосов
/ 28 октября 2011

Я пишу приложение, которое позволяет людям, находящимся в опасности, звонить по номеру 911.

Вот как это должно работать:

  1. Он (или она) чувствует опасность.
  2. Он нажимает клавишу уменьшения громкости три раза.
  3. Мое приложение звонит 911.

Но я сталкиваюсь со следующей проблемой: как получить жесткую клавишусобытие в спящем режиме ?

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

Ответы [ 2 ]

2 голосов
/ 28 октября 2011
public class YourBoardcastReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
                if (Intent.ACTION_CAMERA_BUTTON.equals(intent.getAction())) {
                        Intent main = new Intent();// 
                }
        }
}

И в вашем Манифесте:

<receiver android:name="YourBoardcastReceiver">
                <intent-filter>
                        <action android:name="android.intent.action.SCREEN_ON" />
                </intent-filter>
</receiver>
1 голос
/ 28 октября 2011

Думаю, вы могли бы сделать это только с BroadcastReceiver, но кажется, что кнопки громкости не генерируют Intent при выключенном экране (см. здесь ).Самое близкое, что вы можете сделать, это использовать кнопку камеры, чтобы сделать что-то подобное.

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

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