2012-07-04 106 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