То, что я в основном пытаюсь достичь, это настраиваемые глобальные горячие клавиши, или, другими словами, "вещи будут происходить, когда я нажимаю определенные кнопки независимо от того, какая программа в данный момент находится наверху".
Я предполагаю, что услуга необходима.
У меня есть быстрый и грязный тест, который просто говорит мне, что было нажато, что будет работать, если это активное окно.
public boolean onKeyDown(int keyCode, KeyEvent event) {
char pop;
pop = (char)event.getUnicodeChar();
Toast.makeText(this, Character.toString(pop) , Toast.LENGTH_SHORT).show();
return super.onKeyDown(keyCode, event);
}
Но, очевидно, если я сменю окно или перейду в текстовое поле, это не сработает. Если я привяжу его непосредственно к сервису (или imputmethodservice) и запустим упомянутую службу, ничего не произойдет. (Возможно, необходимы некоторые разрешения?) Любые предложения, в которых я ошибаюсь? Или лучший способ захвата какой кнопки нажата?
Спасибо!