我有几个使用Android Management API并运行在kiosk模式下的设备。
在从Android 10升级到Android 12后,我遇到了一个新问题,即NFC扫描问题。在设备重新启动后,一切似乎工作正常,如果我手动通过按电源按钮触发设备睡眠,并唤醒它,一切都很好。
但是,一旦设备的显示超时并按电源按钮唤醒它,NFC就停止工作了。
这里是一些NfcService的调试日志(设备已解锁,等待几秒钟后重新锁定):
2022-09-01 21:12:16.245 2325-2325/? D/NfcService: BroadcastReceiver - SCREEN_STATE_ON_UNLOCKED
2022-09-01 21:12:16.271 2325-2325/? D/NfcService: NfcServiceHandler - handleMessage(MSG_APPLY_SCREEN_STATE) - state: ON_UNLOCKED
2022-09-01 21:12:16.273 2325-2325/? D/NfcService: Discovery configuration equal, not updating.
2022-09-01 21:12:16.442 2325-4028/? D/NfcService: Disabling default Beam behavior
2022-09-01 21:12:16.520 2325-2325/? D/NfcService: BroadcastReceiver - SCREEN_STATE_ON_LOCKED
2022-09-01 21:12:16.520 2325-2325/? D/NfcService: NfcServiceHandler - handleMessage(MSG_APPLY_SCREEN_STATE) - state: ON_LOCKED
2022-09-01 21:12:17.284 2325-2325/? D/NfcService: NfcServiceHandler - debounceRfField() - debouncing RF_FIELD: 0 (cur:0, pol:true)
2022-09-01 21:12:17.284 2325-2325/? D/NfcService: NfcServiceHandler - debounceRfField() - Ignoring, already the current state
2022-09-01 21:12:18.244 2325-2325/? D/NfcService: BroadcastReceiver - SCREEN_STATE_OFF_LOCKED
2022-09-01 21:12:18.244 2325-2325/? D/NfcService: NfcServiceHandler - handleMessage(MSG_APPLY_SCREEN_STATE) - state: OFF_LOCKED
就我所看到的,屏幕已经解锁了,但有些东西会导致屏幕陷入锁定状态(SCREEN_STATE_ON_LOCKED)。
我可以确认这一点,因为如果我将设备悬停在NFC标签上并解锁它,它会立即扫描该标签,但第一秒后就完全不起作用了。
我还尝试过通过编程方式禁用密钥保护,但没有成功!
以下是当前有效的设备策略:
{
"factoryResetDisabled": true,
"systemUpdate": {
"type": "WINDOWED",
"startMinutes": 0,
"endMinutes": 240,
"freezePeriods": [
{
"startDate": {"month": 8,"day": 1},
"endDate": {"month": 9,"day": 30}
}
]
},
"applications": [
{
"packageName": "com.xxx.yyy",
"installType": "KIOSK",
"defaultPermissionPolicy": "GRANT",
"autoUpdateMode": "AUTO_UPDATE_DEFAULT"
}
],
"funDisabled": true,
"appAutoUpdatePolicy": "WIFI_ONLY",
"kioskCustomization": {
"statusBar": "NOTIFICATIONS_AND_SYSTEM_INFO_ENABLED",
"deviceSettings": "SETTINGS_ACCESS_ALLOWED",
"systemNavigation": "HOME_BUTTON_ONLY"
},
"tetheringConfigDisabled": true,
"mobileNetworksConfigDisabled": false,
"advancedSecurityOverrides": {
"developerSettings": "DEVELOPER_SETTINGS_ALLOWED"
} ,
"maximumTimeToLock": 0,
"keyguardDisabled": true,
"keyguardDisabledFeatures": "ALL_FEATURES"
}
看起来这个问题与以下问题相似:
- Android 11 - Kiosk Mode Lock Screen NFC Issue
- Android 10 NFC App - Stops working when phone sleeps while in MS Intune Kiosk Mode
不幸的是,提出的解决方案对我的应用程序不起作用。
有没有人能推荐一种解决方案或者是否有人遇到了同样的问题?