2014-07-17 122 views
0

Android操作系統執行默認行爲之前,Android應用程序是否可以攔截外部鍵盤快捷鍵(例如Alt + Tab)並對其進行操作?以Alt + Tab爲例,我希望能讓我的應用程序在我的應用程序中響應Alt + Tab,而不是讓Android切換應用程序到不同的應用程序。攔截Android系統鍵盤快捷鍵以覆蓋功能

我嘗試過搜索,但一直未能找到答案,我認爲我的Google-Fu失敗了我!

+0

不是來自普通的SDK應用程序。在根植設備上執行某些操作可能是可能的,如果您在更改操作系統行爲的地方構建自己的ROM模塊,顯然是可行的。 – CommonsWare

+0

謝謝@CommonsWare,這是我害怕的答案。 – ifross

回答

0

這可能不像捕獲快捷方式所需要的那麼強烈或細緻,但是您可能希望覆蓋活動中的onKeyDown事件。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_BACK)) { 
     Log.d(this.getClass().getName(), "Back button pressed"); 

    } 
    if ((keyCode == KeyEvent.KEYCODE_HOME)) { 
     Log.d(this.getClass().getName(), "Home button pressed"); 

    } 
    if ((keyCode == KeyEvent.KEYCODE_MENU)) { 
     Log.d(this.getClass().getName(), "Menu button pressed"); 
    } 
    //return true; 
    return super.onKeyDown(keyCode, event); 
} 
+2

不幸的是,這不起作用,因爲快捷操作發生,任何onKeyDown事件都不會將其發送到應用程序。 – ifross

+0

很抱歉聽到這些,謝謝你的提高。 – Graph