我正在尝试证明Android主屏幕按钮的默认功能,但是当我按下我的平板电脑的主页键时,KeyboardEvent.KEY_UP事件不会触发。 (eee变压器prime)是否有另一个原因来检测和停止此功能?
这是我试图用户的代码
import mx.events.FlexEvent;
// Add the hardware key event handlers to the stage.
protected function appCompleteHandler(event:FlexEvent):void {
stage.addEventListener(KeyboardEvent.KEY_DOWN, handleButtons,false, 1);
stage.addEventListener(KeyboardEvent.KEY_UP, handleButtons,false, 1);
}
// Event handler to handle hardware keyboard keys.
protected function handleButtons(event:KeyboardEvent):void
{
trace("Event fired");
if (event.keyCode == Keyboard.HOME) {
event.preventDefault();
trace("home");
} else if (event.keyCode == Keyboard.BACK) {
// Hanlde back button.
event.preventDefault();
trace("back");
}
}
答案 0 :(得分:1)
主页按钮是一个不允许拦截的特殊按钮。您的代码是正确的,但是一旦KEY_UP事件发生,您的应用将暂停并停止,没有机会对KEY_UP做出反应。
然而,有一种间接的方式。虽然您无法阻止HOME键工作,但您可以进行自己的HOME活动。第一次运行它时,系统会询问您要将哪个活动用作HOME。从那里你要做的就是添加一个按钮,一旦你输入密码,就会启动真正的家庭活动。有关详细信息,请查看此问题的答案:Android - Is It possible to disable the click of home button
答案 1 :(得分:0)
试试这个:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_HOME)) {
doSomethingHere();
return true;
}
return super.onKeyDown(keyCode, event);
}