如何防止用户离开应用或将用户锁定在同一屏幕中?



我正在创建一个儿童应用程序,我想锁定屏幕(不返回或离开应用程序或转到主菜单,就像三星的儿童空间一样)当您在儿童空间(这只是一个包含许多视频或音乐播放列表的屏幕)时,只有当您使用指纹进行身份验证或输入正确的图案甚至面部 ID 时,您才能存在该空间。

三星作为制造商拥有普通应用程序开发人员所没有的特殊权限和对系统 API 的访问权限。我知道您可以在Activity级别使用Back button,但不能使用Home按钮或Overview按钮。

两个键代码

KEYCODE_APP_SWITCH(概述)和KEYCODE_HOME不会交付给您Activity,而是由OS处理,这是SamsungAndroid风格,然后他们可以拦截和处理他们认为合适的代码。

我相信像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甚至有更多的限制。

最新更新