Подтвердить что ты не робот

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

Спасибо!

4b9b3361

Ответ 1

Вы не можете сделать это:)