2012-07-04 42 views
-1

現在,我想實現一個如下功能:在活動中,屏蔽所有硬件按鈕,如HOME,VOLUME_UP,VOLUME_DOWM。但是,只有POWER按鈕不能屏蔽。有沒有辦法?如何屏蔽活動用戶界面上的電源按鈕

+1

「有什麼辦法?」幸運的是,不是,出於明顯的安全原因。用戶需要保留對其設備的控制權,因此能夠返回到主屏幕,將設備重新啓動到安全模式等等非常重要。 – CommonsWare

+0

只是出於好奇,萬一你的應用程序被絞死用戶必須拿出電池? –

回答

1

您無法截取Android中某些按鍵,例如電源和家中,例如Home鍵不能被攔截,因爲這將允許任何惡意應用程序過度使用該功能。

如果您的應用程序是在清單中使用android.intent.category.HOME本身的應用程序替代本身,您可以攔截主鍵的唯一方法。

您可以捕獲其他鍵,例如音量增/減和背部如下

public boolean dispatchKeyEvent(KeyEvent event) { 
int action = event.getAction(); 
int keyCode = event.getKeyCode(); 
    switch (keyCode) { 
    case KeyEvent.KEYCODE_VOLUME_UP: 
     if (action == KeyEvent.ACTION_UP) { 
      //handle the key event 
     } 
     return true; 
    case KeyEvent.KEYCODE_VOLUME_DOWN: 
     if (action == KeyEvent.ACTION_DOWN) { 
      //handle the key event 
     } 
     return true; 
    default: 
     return super.dispatchKeyEvent(event); 
    } 
} 

閱讀下面的職位上Android開發者博客帖子

Android Developer: Back and other hard keys-three stories