我基本上試圖實現的是自定義全局熱鍵,換言之,當我按下某些按鈕時,無論當前哪個程序在最前面,都會發生這種情況。
我假設需要一項服務。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)中並啓動所述服務,則不會發生任何事情。 (需要一些權限?) 任何建議,我哪裏出錯了?或者更好地捕獲哪個按鈕被按下?
謝謝!
hiii 如果你有這個解決方法,然後plz讓我knw。 – 2012-02-13 08:08:56
@Vincent Romain Guy在Android團隊工作,他說這是[不可能](http://stackoverflow.com/a/3455094/942821)。和Fizz,你能接受Romain的回答嗎? – 2012-07-09 14:51:56
可能的重複[是否有可能創建一個監聽硬件按鍵的Android服務?](http://stackoverflow.com/questions/2986337/is-it-possible-to-create-an-android-service-即聽 - 硬件密鑰壓力) – isalgueiro 2015-02-20 12:20:37