Android 12 kiosk模式- NFC在屏幕超时后停止工作

8yoxcaq7  于 2023-01-11  发布在  Android
关注(0)|答案(2)|浏览(230)

我有一些设备使用Android管理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"
}

这个问题似乎与这些问题类似:

  1. Android 11 - Kiosk Mode Lock Screen NFC Issue
  2. Android 10 NFC App - Stops working when phone sleeps while in MS Intune Kiosk Mode
    不幸的是,所提出的解决方案对我的应用程序不起作用。
    有人能推荐一个解决方案吗?有人遇到过同样的问题吗?
tvokkenx

tvokkenx1#

感谢您提出此问题。经过审查,我们确定针对您报告的问题正在进行内部调查,目前正在由Google工程部进行审查。我们已沿着您提供的详细信息作为调查的一部分进行传递。此外,我们已创建public bug来跟踪此问题。请跟踪此主题以获取更新。

0g0grzrc

0g0grzrc2#

我在运行Android 12的iGET BV 5200上遇到了同样的问题,在配置设备后,屏幕锁定默认设置为“滑动”,尽管我的kiosk应用程序将设备策略设置为禁用键盘守卫,Android设置显示没有设置屏幕锁定,滑动锁在我的应用程序下,在我将设备从睡眠中唤醒后阻止NFC阅读。我发现解决这个问题的关键是允许键盘守卫处于锁定任务模式。
我找到了两种解决方案/变通方法:
1.在设备策略和锁定任务模式下允许键盘锁,并在Android设置中将手动屏幕锁定设置为“无”。
第一个月
1.在设备策略中禁用键盘守卫,但在锁定任务模式中启用键盘守卫功能。在这种情况下,我不必在Android设置中更改屏幕锁定,但键盘守卫会被禁用。
this.devicePolicyManager.setKeyguardDisabled(this.adminComponentName, true); this.devicePolicyManager.setLockTaskFeatures(this.adminComponentName, LOCK_TASK_FEATURE_KEYGUARD | LOCK_TASK_FEATURE_GLOBAL_ACTIONS);

相关问题