OnKeyDown в сервисе? (Глобальные горячие клавиши)

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

У меня есть быстрый и грязный тест, который просто говорит мне, что было нажато, что будет работать, если это активное окно.

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) и запустим упомянутую службу, ничего не произойдет. (Возможно, некоторые разрешения необходимы?) Любые предложения, в которых я ошибаюсь? Или лучший способ захвата какой кнопки нажата?

Благодаря!

Ты не сможешь это сделать 🙂