如何通过代码锁定Android手机上的按钮/屏幕(屏幕锁)?

5

可能是重复问题:
以编程方式锁定Android设备

我制作了一个简单的Android应用程序,带有PIN码/屏幕锁定功能。用户需要输入密码来锁定手机,然后再次输入密码才能解锁手机。问题是,用户仍然可以按返回、主页(等)键退出应用程序而不需要输入密码。我该如何防止这种情况发生?

3个回答

4
您可以通过在Activity类中覆盖dispatchKeyEvent()方法并返回true,如果event.getKeyCode()等于KeyEvent.KEYCODE_BACK,来阻止后退按钮。但您不能阻止Home按钮返回主页。
我听说过一些诡计,其中您将应用程序注册为android.intent.category.HOME意图的接收器。如果用户按下Home按钮,则会导致Android OS加载您的活动。如果您能使其正常工作,那么如果用户输入了正确的密码,您就可以加载“实际”的主屏幕。然而,这种方法在不同设备和Android版本上可能会表现不同,并且它可能无法阻止Hold-Home任务列表的出现。
最重要的是,Android操作系统已经设计成防止您试图做的事情:应用程序不应该能够控制手机并阻止其他应用程序(特别是电话)运行。

0
据我所知,您无法阻止主页键的使用,因为这是一项安全功能,允许用户始终退出应用程序。但按下主页键不会关闭活动。

Android 中内置的屏幕锁定/图案锁定功能会阻止 Home 和返回两个按键。 - Martin
是的,但正如你所说,那是内置的。它是操作系统的一部分。从不属于操作系统的应用程序访问该功能将成为安全问题,因为这会允许开发人员更改操作系统的功能。 - Tyler Treat

0

那些创建了免费的“幼儿锁”apk的家伙们不知怎么做到了 - 下载并自行查看 :)

运行时,它会要求获得作为主屏幕应用程序的权限,并且您需要勾选“用作默认值”的框。要退出应用程序,您需要按下屏幕的所有4个角落。除电源按钮外,所有按钮都被锁定。所以肯定有一种方法可以做到这一点!

他在这里向用户解释了它的工作原理: http://www.toddlerlock.com/3.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接