2012-05-30 30 views
1

從stackoverflow中的答案我發現,主頁按鈕可以重寫? 但我在Android市場上發現了一個名爲「Mxplayer」的應用程序,您可以在播放視頻時鎖定所有按鈕。他們如何做到這一點? 我們可以重寫android中的主頁按鈕嗎?如何捕捉主頁按鈕在Android中單擊?

回答

12

此方法適用於高達2.3,

覆蓋在你的Activity以下方法,

@Override 
public void onAttachedToWindow() { 
    super.onAttachedToWindow(); 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);   
} 

現在處理這樣的關鍵事件,

@Override 

public boolean onKeyDown(int keyCode, KeyEvent event) { 

    if(keyCode == KeyEvent.KEYCODE_HOME) 
    { 
    Log.i("Home Button","Clicked"); 
    } 
    if(keyCode==KeyEvent.KEYCODE_BACK) 
    { 

     finish(); 
    } 
return false; 

};

+0

但是這取消了主頁按鈕的默認行爲。即使我在'onKeyDown'中使用'return super(keyCode,event)'而不是'return false'。 – Ixx

+0

我想趕上主頁按鈕來做跟蹤相關的事情,但對用戶的影響必須相同。 – Ixx

+0

然後嘗試不覆蓋onKeyDown。在onAttachedWindow()中做你的東西,看看是否可以工作 –

-1

是的,你可以。使用下面的代碼:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_HOME)) { 
     //do nothing 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+2

這不起作用。 – user1323210

相關問題