我正在为幼儿创建一个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设备上的屏幕会导致通知栏出现在如上所述配置的全屏应用程序上?我该如何防止它出现?
解决方法:
如果问题是布尔值:是否可以覆盖电源按钮?答案是肯定的.
请记住,我没有说关于应该选择或不应该选择这种行为的背景,或者说情况会在您试图实现的目标中使您受益!
在无根电话上(至少2.3.5和2.3.6),可能会覆盖电源按钮!如果您不相信我,那就从Google Play下载免费的Theft Aware应用程序(版本被AVAST收购)并自己检查一下.我已经在无根的Samsung Galaxy Y(android 2.3.6)和HTC Wildfire-S(android 2.3.5)上进行了测试.
我并不是说可以使用公开记录的android API,但是可以在无根工厂android固件(如果不是其他版本,则为2.3.5和2.3.6)上实现.可能是盗窃意识的家伙可能已经迷上了OS级别/对其进行了反向工程,或者已经深入研究了源代码,并且可能已经想出了某种替代电源按钮的方法,但是他们绝对出色地做到了.
这就是他们的IP,这就是为什么没有关于他们如何做的文件,论文或论坛讨论解决方案的原因.最近两个星期,我一直在努力弄清楚自己的情况.还没有成功,但是如果他们能做到…意味着,它可以完成!
厌倦了无法完成阅读,因此找到答案.继续寻找,如果有人发现了把戏,请发布!
附注:我并不是说这是一件好事.我并不是说您应该禁用电源按钮并最终导致不良的用户体验应用程序.答案仅是说可以覆盖电源按钮!