Android 11 - Kiosk 模式锁屏 NFC 问题
Posted
技术标签:
【中文标题】Android 11 - Kiosk 模式锁屏 NFC 问题【英文标题】:Android 11 - Kiosk Mode Lock Screen NFC Issue 【发布时间】:2021-10-13 21:27:09 【问题描述】:我有一个使用 android 管理 API 作为信息亭运行的应用程序 - 我的一些客户更喜欢使用 Intune 和 Airwatch 等 MDM 平台。
我们将三星 XCover 系列用于我们的专用设备。
Android 11 似乎出现了一个新问题。
手机在运行时,无论是作为单次使用 Kiosk 应用程序锁定到我的应用程序,还是使用第三方 MDM 平台进行多应用程序设置,一段时间后屏幕都会超时。一旦屏幕超时,Android 11 设备会进入“滑动锁定”,但会在其上显示应用程序或 MDM 信息亭(因此用户不知道发生了这种情况)。这会导致 NFC 停止运行,因为设备实际上已被锁定。
这可以复制和验证如下:
-
带上两部手机,一部是 Android 11,一部是 Android 9。
配置它们以使用任何应用程序作为信息亭运行
等待两部手机的屏幕超时。
最后更新策略以“force_installed”运行。
Android 11 手机会返回“滑动解锁”,Android 9 手机不会。
在 Android 10 上也会出现同样的问题,但可以通过在设备设置中将锁定屏幕关闭来轻松解决。不幸的是,在 Android 11 上,禁用此功能似乎不会影响设备在作为信息亭运行时的锁定状态。
我已经为锁定到我们应用程序的设备提出了一个临时解决方案,方法是在应用程序在前台运行时保持屏幕处于活动状态。但是,这并不适合我们在其环境中也使用其他应用程序的客户。
【问题讨论】:
【参考方案1】:也许通过 DevicePolicyManager 禁用 Keyguard 有效?
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVIEC);
dpm.setKeyguardDisabled(yourAdminComponentName, true);
【讨论】:
不幸的是,这会引发安全异常“不拥有配置文件”尽管dpm.isAdminActive(deviceAdminComponentName)
返回 true 我还尝试使用 'dpm.isAdminActive(deviceAdminComponentName)' 遍历所有设备管理包其他 3 个管理员,每个都抛出相同的安全异常,如下所示“不属于 uid 10247”
有趣的是,通过 Android Management API 设置策略会返回相同的结果。屏幕超时时设备仍会锁定。 '"keyguardDisabled": true, '以上是关于Android 11 - Kiosk 模式锁屏 NFC 问题的主要内容,如果未能解决你的问题,请参考以下文章
Android 8.1(API 27) - 重启后键盘未在Kiosk模式应用中显示
在 Kiosk 模式下禁用 Android 导航(Android 管理 API)
NativeScript for Android App 中的 Kiosk 模式
如何通过 Android Management API 在 KIOSK 模式下允许 systemui 活动?