现在,我想实现这样的功能:在一个活动中,屏蔽所有硬件按钮,如HOME,VOLUME_UP,VOLUME_DOWM。但是,只有POWER按钮无法屏蔽。有办法吗?
答案 0 :(得分:1)
您不能拦截Android中的某些密钥,例如电源和家用电源,例如无法拦截主页密钥,因为这将允许任何恶意应用程序覆盖该功能。
您可以截取主键的唯一方法是,如果您的应用程序是清单中使用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 Developer blogpost上的以下帖子