Можно ли создать службу Android, которая будет прослушивать нажатия аппаратных клавиш?
Я хотел бы запустить фоновый сервис Android, который будет работать как клавиатурный слот с домашнего экрана или когда телефон спит. Это возможно?
Из полу связанных между собой примеров в сети я собрал следующий сервис, но получил ошибку: «onKeyDown не определен для типа Сервис». Означает ли это, что это не может быть сделано без переписывания Launcher, или я что-то упускаю из виду?
public class ServiceName extends Service {
@Override
public void onCreate() {
//Stuff
}
public IBinder onBind(Intent intent) {
//Stuff
return null;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN) {
switch(keyCode) {
case KeyEvent.KEYCODE_A:
//Stuff
return true;
case KeyEvent.KEYCODE_B:
//Stuff
return true;
//etc.
}
}
return super.onKeyDown(keyCode, event);
}
}
Я понимаю, что при вводе с главного экрана Android по умолчанию используется панель поиска, но это действительно только для особого использования. Я действительно не ожидаю, что кто-нибудь, кроме меня, захочет этого. Я просто думаю, что было бы хорошо, например, использовать кнопку камеры, чтобы разбудить телефон.