1

I have an application that runs as a kiosk using Android Management API - some of my customers prefer to use MDM platforms such as Intune and Airwatch.

We use the Samsung XCover Series for our dedicated devices.

It appears that with Android 11 there has arisen a new issue.

When the phone is running, be it as a single use Kiosk app locked to my application, or a multi-app setting using a third party MDM Platform, the screen will time out after a period of time. Once the screen times out, the Android 11 device enters the "Swipe to lock", but shows the app or MDM kiosk on top of this (hence the user has no knowledge this is happening). This is causing NFC to stop functioning as the device is essentially locked.

This can be reproduced and verified as follows:

  1. Take two phones, one Android 11 and one 9.
  2. Provisioning them to run as kiosk using any application
  3. Wait for the screen to timeout on both phones.
  4. Finally update the policy to run as "force_installed".
  5. The Android 11 phone will return to "Swipe to unlock", the 9 phone will not.

The same issue occurs on Android 10 but was easily fixed by turning the Lock Screen to Off in the device settings. Unfortunately, on Android 11 it appears that disabling this feature has no affect on the lock status of the device while running as a kiosk.

I have come up with a temporary solution for devices that are locked to our application, by keeping the screen alive when the app is running in the foreground. This however does not suit our customers who also use other apps within their environment.

Jamie
  • 11
  • 3

2 Answers2

1

A public ticket is open for a similar report to your reported issue. We've passed your use case on in the internal engineering ticket as part of the ongoing review on Google's side. To keep up to date on a possible resolution, I suggest following the public ticket for updates.

rsiason
  • 156
  • 5
0

Maybe disabling the Keyguard via the DevicePolicyManager works?

DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVIEC); 
dpm.setKeyguardDisabled(yourAdminComponentName, true);
JuKe
  • 39
  • 1
  • 2
  • Unfortunately this throws a security exception "does not own the profile" This is despite `dpm.isAdminActive(deviceAdminComponentName)` returning true I have also tried looping through all device admin packages using 'dpm.isAdminActive(deviceAdminComponentName)' There are 3 other admins, each throwing the same security exception as follows "is not owned by uid 10247" – Jamie Aug 11 '21 at 12:51
  • Interestingly, setting the policy via Android Management API returns the same result. The device still gets locked when the screen times out. '"keyguardDisabled": true, ' – Jamie Aug 11 '21 at 13:10