Я не могу найти решение для этого.
У меня есть планшет с двумя специальными кнопками (возможно, для игр, я не знаю), поэтому я переопределил метод 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)