我的问题是自我解释。 我搜索了很多,但找不到处理近期活动按钮点击的方法。 我想忽略来自android 3.0平板电脑状态栏的“近期活动”按钮的硬件按钮点击。
目前我到目前为止所尝试的是:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK)
{
return true;
}
// in the same way I have written it for KEYCODE_HOME
}
你能告诉我应该写什么来处理最近的活动按钮吗?
提前感谢你。 :)
编辑:这就是我现在尝试过的。 KEYCODE_APP_SWITCH无效。
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.e("INSIDE", "LOCKDEMO");
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.e("KEY EVENT", "BACK");
return true;
}
if (keyCode == KeyEvent.KEYCODE_HOME) {
Log.e("KEY EVENT", "HOME");
return true;
}
if(keyCode == KeyEvent.FLAG_FROM_SYSTEM) {
Log.e("KEY EVENT", "SYSTEM");
return true;
}
if(keyCode == KeyEvent.FLAG_KEEP_TOUCH_MODE) {
Log.e("KEY EVENT", "TOUCH MODE");
return true;
}
if(keyCode == KeyEvent.FLAG_SOFT_KEYBOARD) {
Log.e("KEY EVENT", "SoFT KEYBOARD");
return true;
}
if(keyCode == KeyEvent.FLAG_VIRTUAL_HARD_KEY) {
Log.e("KEY EVENT", "HARDWARE KEY");
return true;
}
if(keyCode == KeyEvent.KEYCODE_APP_SWITCH) {
Log.e("KEY EVENT", "APP SWITCH");
return true;
}
Log.e("KEY EVENT", "NOT HANDLED");
return super.onKeyDown(keyCode, event);
}
当我按下RecentAppBtn时,它甚至不打印最后一条Log语句,即事件未处理。
答案 0 :(得分:6)
从偷看到文档,我认为KeyEvent.KEYCODE_APP_SWITCH
是您正在寻找的。 p>
然而,当您按下应用程序切换器时,您也可以使用KeyEvent.getKeyCode()
-method(在event
- 参数上)查看触发了哪些键代码(以及是否有任何键被触发)。
我玩了一段时间,我已经得出结论,这是不可能的。
KEYCODE_APP_SWITCH
- 事件未发送至onKeyDown()
或dispatchKeyEvent()
。因此,无法处理。
此外,您将在Android 4设备上遇到问题,因为KEYCODE_HOME
-event也不再分发给上述任何方法。请参阅文档:
密钥代码常量:Home键。该密钥由框架处理 并且从未交付给应用程序。
似乎没有真正简单的方法来自己创建真正的锁屏。请参阅此讨论:Developing a custom lock screen
可以在默认锁定屏幕上显示一些自定义信息:Is there a way for me to show a customized message on the lock screen?
为了完整起见:在Android L中,您将能够“锁定应用中的用户”,因此您无需手动覆盖硬件密钥。这是relevant information:
L Developer Preview 引入了一个新的任务锁定API 您暂时限制用户离开您的应用或存在 被通知中断。例如,如果您可以使用此功能 正在开发一个教育应用程序,以支持高风险评估 Android上的要求。 一旦您的应用激活此模式,用户就会 无法看到通知,访问其他应用或返回 主屏幕,直到您的应用退出模式。
答案 1 :(得分:1)
如果您想以Kiosk模式运行应用程序,则可以禁用 com.android.systemui 并通过软按钮替换按钮(例如Button Savior应用程序,小心不要弄乱你的设备!)。似乎很多化妆品都消失了,我不知道它是否会以某种未知的方式影响系统的稳定性,但到目前为止我已经让它成功了。
如果有人了解 com.android.systemui 的更多信息,它真正做了什么以及禁用它是否安全,请发表评论!
另见我的帖子: Safe to disable com.android.systemui?
我希望得到一些答案......