Search code examples
androidandroid-management-api

Minimum Android API level when using Android Management API enterprises.policies feature 'kioskCustomization.systemNavigation'?


I'm using the Android Management API to test provisioning a tablet device and notice some noncompliance details related to 'kioskCustomization,' so I'm wondering if my API level (25) is too low for kioskCustomization features. I couldn't find anything online about the minimum API level.

I believe I recall reading another SO thread that mentioned the noncompliance details previously had a bug, but I can't find it, so I apologize and can't reference this - I could easily be wrong here. Regardless, my kiosk app isn't applying the kioskCustomization features. I'm not able to navigate away from the kiosk app - I can see the back and home buttons, but they don't do anything. I don't want this enabled in production, but would like the functionality for some testing.

It may also be that kioskCustomization is not working correctly whenever using 'installType: kiosk' setting, as opposed to 'kioskCustomLauncherEnabled: true', see Disable Android navigation in Kiosk Mode (Android Management API). I'm using 'installType: kiosk' w/ kioskCustomization.

Below is a snippet of the device properties when I call 'devices.list` and navigate to the device. Please let me know if there are other relevant details I should include.

      "managementMode": "DEVICE_OWNER",
      "state": "ACTIVE",
      "appliedState": "ACTIVE",
      "policyCompliant": true,
      "nonComplianceDetails": [
        {
          "settingName": "kioskCustomization",
          "nonComplianceReason": "API_LEVEL",
          "fieldPath": "kioskCustomization.systemErrorWarnings"
        },
        {
          "settingName": "kioskCustomization",
          "nonComplianceReason": "API_LEVEL",
          "fieldPath": "kioskCustomization.powerButtonActions"
        },
        {
          "settingName": "kioskCustomization",
          "nonComplianceReason": "API_LEVEL",
          "fieldPath": "kioskCustomization.systemNavigation"
        },
        {
          "settingName": "kioskCustomization",
          "nonComplianceReason": "API_LEVEL",
          "fieldPath": "kioskCustomization.statusBar"
        }
      ],
      "enrollmentTime": "2020-07-15T20:04:11.278Z",
      "lastStatusReportTime": "2020-07-16T20:05:25.961Z",
      "lastPolicySyncTime": "2020-07-17T15:33:24.251Z",
      "appliedPolicyVersion": "6",
      "apiLevel": 25,
      "hardwareInfo": {
        "brand": "Android",
        "hardware": "rk30board",
        "manufacturer": "rockchip",
        "serialNumber": "PT8020011027",
        "model": "PT80"
      },

Thank you for the help!


Solution

  • This feature is only supported from API level 28 (Android 9) since KioskCustomization uses setLockTaskFeatures that controls on and off of the following System UI features:

    • Home button
    • Overview
    • Global actions
    • Notifications
    • System info / Status bar
    • Keyguard (lock screen)

    To learn more, you may visit this documentation here