当我的两个硬件按钮,如音量按钮和电源按钮按下时,我想添加侦听器。但我知道你不能超越电源按钮。实际上,我想要截取屏幕,所以我想出了这个解决方案。所以这就是我想要实现的,如果你对此有任何建议,请分享它。
发布于 2014-08-21 16:29:16
在你的活动中。尝试下面的代码,将音量调高+电源键。您可以减少PRESS_INTERVAL以获得像同时按下两个按钮一样的效果。希望这能有所帮助!
private static final int PRESS_INTERVAL = 700;
private long mUpKeyEventTime = 0;
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (KeyEvent.KEYCODE_POWER == event.getKeyCode()) {
if ((event.getEventTime() - mUpKeyEventTime) < PRESS_INTERVAL) {
// This is to check if Volume UP key and Power key are pressed at the same time.
// Do the Task. Here You can add logic to take screenshot
}
return true;
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
return true;
}
return super.onKeyDown(keyCode, event);
}
public boolean onKeyUp(int keyCode, KeyEvent event) {
if(KeyEvent.KEYCODE_VOLUME_UP == keyCode){
mUpKeyEventTime = event.getEventTime();
}
return super.onKeyUp(keyCode, event);
}发布于 2014-08-21 15:27:52
您需要重写onKeyDown和onKeyUp事件来检测按下的两个按钮。
public boolean first,second;
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_POWER){
first = true;
}
else if(keyCode == KeyEvent.KEYCODE_VOLUME_UP){
second = true;
}
if(first && second) {
// Two buttons pressed, Do your stuff
}
return true;
}
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_POWER){
first = false;
}
else if(keyCode == KeyEvent.KEYCODE_VOLUME_UP){
second = false;
}
return true;
}https://stackoverflow.com/questions/25420414
复制相似问题