2013-06-24 59 views
1

我需要捕捉電源按鍵在android系統。我試過如下捕獲電源鍵在android中按?

 @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if(KeyEvent.KEYCODE_POWER == event.getKeyCode()){ 
       //some operations 
      } 
    return super.onKeyDown(keyCode, event); 
    } 

但是使用此代碼按下電源鍵控制不進入onKeyDown方法。

在電源鍵長按,此方法獲得called.But正是我需要我在單 按我需要捕獲這個事件

誰能幫助?

回答

0

你可能缺少,可以讓你的應用程序來覆蓋電源鍵的默認行爲清單的權限,這也是很重要的,如果你已經處理,以防止默認行爲時返回的東西。

<uses-permission android:name="android.permission.PREVENT_POWER_KEY" /> 

有進一步的討論here

所以,你的代碼是:

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if(KeyEvent.KEYCODE_POWER == event.getKeyCode()){ 
       return true;//If event is handled, falseif 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

如果你處理的事件,返回true。如果你想允許事件 被下一個接收器進行處理,返回false。

+1

此權限不存在於上按壓電源按鈕的用途的許可 – Sjk

+1

的列表,控制不事件進入的onkeydown方法。我已經添加日誌來檢查它。 – Sjk

1

這個線程充沛,你必須添加權限。

<uses-permission android:name="android.permission.PREVENT_POWER_KEY" /> 

How to hook into the Power button in Android?

+1

thnks.i已經看到這個線程,但它不適用於我。這個權限不在列表中。 – Sjk

+0

然後或許看看當你按下電源鍵時會發生什麼的記錄,它是否適用於其他鍵?當你按下電源時,它會給你什麼價值? – Paul

+0

按下電源鍵直接進入onStop。雅等按鍵在工作(後退,主頁,音量) – Sjk