Как обнаружить кнопку в фоновом режиме в Android? - PullRequest
0 голосов
/ 23 октября 2018

Я не могу найти решение для этого.

У меня есть планшет с двумя специальными кнопками (возможно, для игр, я не знаю), поэтому я переопределил метод onKeyDown, чтобыпоймать событие.Когда событие обнаружено, я установил сообщение Toast.Но, к сожалению, в фоновом режиме это не работает.

Я знаю, что есть решение, потому что одна из этих кнопок ("F2" для этого случая) работает, даже если вы находитесь в фоновом режиме.Это приложение, которое управляет кнопкой «F2», показывает диспетчер уведомлений с высоким приоритетом.

Я пытался создать service, который обнаружит это событие в фоновом режиме, но я прочитал, что«Службы» не имеют контроля над клавишами.

У вас есть идеи, чтобы решить эту проблему?

Спасибо!

> Это мой код MainActivity:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch(keyCode){
            case 131:
                Toast.makeText(this,"Key F1 press.", Toast.LENGTH_SHORT).show();
            case 132:
                Toast.makeText(this,"Key F2 press.", Toast.LENGTH_SHORT).show();
            default:
                Toast.makeText(this,"Another: " + keyCode, Toast.LENGTH_SHORT).show();
        }
        return true;
    }
}

Я запускаю этот код с минимальной SDK версии API 22. (Android 5.1)

...