簡體   English   中英

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

[英]Android 12 kiosk mode - NFC stops working after screen timeout

我有一些設備使用 Android 管理 API 並在信息亭模式下運行。

從 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

據我所知,屏幕已解鎖,但某些東西正在觸發屏幕陷入鎖定的 state ( SCREEN_STATE_ON_LOCKED )。

我可以確認這一點,因為如果我通過 NFC 標簽物理 hover 設備並解鎖它,它會立即掃描標簽,但在第一秒后它根本不起作用。

我也曾嘗試以編程方式禁用鍵盤鎖,但沒有成功!

這是當前的活動設備策略:

{
    "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 模式鎖定屏幕 NFC 問題
  2. Android 10 NFC 應用程序 - 在 MS Intune Kiosk 模式下手機休眠時停止工作

不幸的是,所提出的解決方案不適用於我的應用程序。

任何人都可以推薦解決方案或有人遇到過同樣的問題嗎?

感謝您提出問題。 經審查,我們發現對您報告的問題進行了積極的內部調查,目前正在與 Google 工程部門進行審查。 作為調查的一部分,我們傳遞了您提供的詳細信息。 此外,還制作了一個公共錯誤來跟蹤此問題。 請關注該線程以獲取更新。

我在運行 Android 12 的 iGET BV5200 上遇到了同樣的問題。配置設備后,屏幕鎖定默認設置為“滑動”。 盡管我的自助服務終端應用程序將設備策略設置為禁用鍵盤鎖,並且 Android 設置顯示未設置屏幕鎖定,但滑動鎖位於我的應用程序下,並在我將設備從睡眠狀態喚醒后阻止 NFC 讀取。 我發現解決此問題的關鍵是允許 keyguard 處於鎖定任務模式。

我找到了兩個解決方案/解決方法:

  1. 在設備策略和鎖定任務模式下允許鍵盤鎖,並在 Android 設置中將屏幕鎖定手動設置為“無”。

    devicePolicyManager.setKeyguardDisabled(adminComponentName, false); devicePolicyManager.setLockTaskFeatures(adminComponentName, LOCK_TASK_FEATURE_KEYGUARD | LOCK_TASK_FEATURE_GLOBAL_ACTIONS);

  2. 在 Device Policy 中禁用鍵盤鎖,但在鎖定任務模式下啟用鍵盤鎖功能。 在這種情況下,我不必更改 Android 設置中的屏幕鎖定,但鍵盤鎖會被禁用。

    this.devicePolicyManager.setKeyguardDisabled(this.adminComponentName, true); this.devicePolicyManager.setLockTaskFeatures(this.adminComponentName, LOCK_TASK_FEATURE_KEYGUARD | LOCK_TASK_FEATURE_GLOBAL_ACTIONS);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM