Android 锁定全屏

Android locked fullscreen

是否可以在 Android 上锁定全屏?基本上隐藏 toasts,隐藏 home/back/switch,隐藏通知栏,使它从底部或顶部滑动不起作用。

正在研究一个将从中受益匪浅的想法。我知道按照我的描述做是不好的,但它针对的是非常年轻的 children,他们随机 tap/drag 偶尔会不小心将 phone 语言更改为中文。

一种方法是使用需要 SYSTEM_ALERT_WINDOW 许可的叠加层,同时设置应用程序 with/as 服务。请参阅 yoah 在 Disable home button in android toddler app?

的代码示例之前的答案

根据您定位的 Android 版本,您可以使用屏幕固定。

来自 Android 文档 (https://developer.android.com/about/versions/android-5.0.html):

屏幕固定

Android 5.0 引入了新的屏幕固定 API,可让您暂时限制用户离开您的任务或被通知打断。例如,如果您正在开发教育应用程序以支持 Android 上的高风险评估要求,或者开发单一用途或信息亭应用程序,则可以使用此方法。一旦您的应用激活屏幕固定,用户将无法看到通知、访问其他应用或 return 到主屏幕,直到您的应用退出该模式。

有两种激活屏幕固定的方法:

  • 手动:用户可以在“设置”>“安全”> 屏幕固定,以及 select 他们想要固定的任务,方法是触摸 最近屏幕上的绿色图钉图标。
  • 以编程方式:激活 以编程方式固定屏幕,从您的应用程序调用 startLockTask()。 如果发出请求的应用程序不是设备所有者,系统会提示用户 确认。设备所有者应用程序可以调用 setLockTaskPackages() 使应用程序无需用户确认即可固定的方法 步骤。

当任务锁定处于活动状态时,会发生以下行为:

  • 状态栏为空白,隐藏用户通知和状态信息。
  • 主页和最近使用的应用程序按钮已隐藏。
  • 其他应用无法启动新活动。
  • 当前应用可以启动新的活动,只要不创建新任务即可。
  • 当设备所有者调用屏幕固定时,用户将保持锁定到您的应用程序,直到应用程序调用 stopLockTask()。
  • 如果屏幕固定是 activity 由不是设备所有者的另一个应用或由用户直接固定,则用户可以同时按住“后退”和“最近”按钮退出。