我正在创建一个儿童应用程序,我想锁定屏幕(不返回或离开应用程序或转到主菜单,就像三星的儿童空间一样)当您在儿童空间(这只是一个包含许多视频或音乐播放列表的屏幕)时,只有当您使用指纹进行身份验证或输入正确的图案甚至面部 ID 时,您才能存在该空间。
三星作为制造商拥有普通应用程序开发人员所没有的特殊权限和对系统 API 的访问权限。我知道您可以在Activity
级别使用Back button
,但不能使用Home
按钮或Overview
按钮。
两个键代码
KEYCODE_APP_SWITCH
(概述)和KEYCODE_HOME
不会交付给您Activity
,而是由OS
处理,这是Samsung
Android
风格,然后他们可以拦截和处理他们认为合适的代码。
我相信像pre-4.0
这样的旧版本的Android
你可以很容易地做这样的事情,但这是一个明显的安全风险。所以只有系统应用程序才能在现代Android
中使用这种东西。
根据手机的不同,您可以通过Settings
禁用这些按钮,这意味着您可以在首次启动时提示父级禁用它们。
总而言之,如果您确实想出了一个解决方案,它就不会很漂亮。
//Here is the way you can catch the back button though.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//Catch the back key and return
if(KeyEvent.KEYCODE_BACK == keyCode){
return false;
}
return super.onKeyDown(keyCode, event);
}
编辑:您还有Flutter
/Dart
标签,并且使用该api而不是本机api甚至有更多的限制。