【发布时间】:2012-03-14 07:45:36
【问题描述】:
我正在为幼儿创建一个 Android 应用。因此,我需要锁定尽可能多的按钮,以防止蹒跚学步的孩子访问 Android 设备的其他功能。基本上,我希望在流行的幼儿应用程序(如“幼儿锁”)中重现锁定机制。我的逻辑要求用户以顺时针方向点击屏幕的四个角以退出应用程序。
为了全屏显示应用程序,我的清单中有以下内容
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
为了仅以横向模式显示应用程序,我在我的活动的 onCreate 事件中有以下内容
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
为了防止使用任何按钮,我使用以下代码覆盖 onKeyDown 事件
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return true;
}
这一切都很好。到目前为止,一切都很好。只有一个按钮我似乎无法禁用……电源按钮。我在假设无法禁用电源按钮的情况下进行操作。如果我错了,请告诉我。所以,我需要弄清楚如何处理它。显然,如果按住电源按钮并且设备已关机,那么我对此无能为力。但是,如果轻按电源按钮关闭屏幕,然后再次轻按以重新打开屏幕,我希望能够妥善处理。
发生的情况是应用恢复运行,但不再全屏显示。显示通知栏。因此,我可以将其拉下并访问 Android 的其他区域。
为什么唤醒 Android 设备上的屏幕会导致通知栏出现在按上述配置的全屏应用上...以及如何防止它?
【问题讨论】:
-
尝试在清单中设置您的方向,而不是通过 Java 代码。
-
感谢您的建议。我从 onCreate 事件中删除了
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);行,而是将android:screenOrientation="landscape"添加到我的清单中。但是应用程序的行为仍然相同。唤醒后通知栏仍然显示。
标签: android button fullscreen children