![](/img/trans.png)
[英]Android 10 NFC App - Stops working when phone sleeps while in MS Intune Kiosk Mode
[英]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"
}
看來這個問題類似於這些問題:
不幸的是,所提出的解決方案不適用於我的應用程序。
任何人都可以推薦解決方案或有人遇到過同樣的問題嗎?
感謝您提出問題。 經審查,我們發現對您報告的問題進行了積極的內部調查,目前正在與 Google 工程部門進行審查。 作為調查的一部分,我們傳遞了您提供的詳細信息。 此外,還制作了一個公共錯誤來跟蹤此問題。 請關注該線程以獲取更新。
我在運行 Android 12 的 iGET BV5200 上遇到了同樣的問題。配置設備后,屏幕鎖定默認設置為“滑動”。 盡管我的自助服務終端應用程序將設備策略設置為禁用鍵盤鎖,並且 Android 設置顯示未設置屏幕鎖定,但滑動鎖位於我的應用程序下,並在我將設備從睡眠狀態喚醒后阻止 NFC 讀取。 我發現解決此問題的關鍵是允許 keyguard 處於鎖定任務模式。
我找到了兩個解決方案/解決方法:
在設備策略和鎖定任務模式下允許鍵盤鎖,並在 Android 設置中將屏幕鎖定手動設置為“無”。
devicePolicyManager.setKeyguardDisabled(adminComponentName, false); devicePolicyManager.setLockTaskFeatures(adminComponentName, LOCK_TASK_FEATURE_KEYGUARD | LOCK_TASK_FEATURE_GLOBAL_ACTIONS);
在 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.