"Display Over Other Apps" and Battery Optimization permissions cannot be set via Esper Blueprint — must be handled at app or device level
Android
Esper cannot grant the "Display Over Other Apps" and "Disable Battery Optimization" permissions through Blueprints or device policies. This article explains why and shows you the available workarounds.
Why these permissions can't be set through Esper
The Android permissions SYSTEM_ALERT_WINDOW ("Display Over Other Apps") and REQUEST_IGNORE_BATTERY_OPTIMIZATIONS are special app access permissions. They're not part of the standard Android runtime permission model that Esper controls through the Android Enterprise API. Android intentionally prevents MDM platforms—including Esper—from granting these permissions silently to third-party apps.
Option 1: Check if the app supports managed configurations
Some apps allow their permissions to be configured through managed app configurations.
- Open the Esper Console and go to Apps & Integrations → Apps.
- Select your app and look for a Managed Configurations section.
- Check whether the app publisher exposes a managed configuration key for battery optimization or overlay permissions (for example,
battery_optimization_exempt: true). - If available, set the value and push it via your Blueprint to enrolled devices.
- On a test device, verify the permission was granted by going to Settings → Apps → [App Name] → Special App Access.
Option 2: Grant the permissions manually on each device
Use this approach for small deployments where you can configure devices individually.
- On the device, open Settings → Apps → [App Name] → Display Over Other Apps and toggle it ON.
- For battery optimization, go to Settings → Apps → [App Name] → Battery and select Unrestricted.
- Reboot the device and confirm the app retains the permissions and works as expected.
Option 3: Work with your app developer (recommended for large deployments)
For apps you control or can modify, have your development team implement runtime permission requests.
- Modify the app to use the
ACTION_MANAGE_OVERLAY_PERMISSIONandACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONSintents. - The app will present system prompts to users on first launch, which they can approve once.
- For fully locked kiosk deployments where user interaction isn't possible, the app must be built as a system app or pre-installed at the ROM level by the OEM. This allows these permissions to be declared in the manifest and auto-granted without user action.
- To verify the permissions were granted, use ADB on a device where the app is installed:
adb shell dumpsys package com.your.package | grep -E "SYSTEM_ALERT_WINDOW|BATTERY" Special cases
- OEM or in-house apps: Work with your app development team to build the app as a system or privileged app. This is the only way to auto-grant these permissions at scale without user interaction.
- Device-specific ODMs: If you're using devices from manufacturers like Zebra, Honeywell, or Samsung Knox, check whether their SDK exposes additional battery optimization or overlay controls outside standard Android Enterprise APIs.
- Fully managed devices: Device owner mode does not expand MDM access to these permissions for third-party apps.
Still need help?
If you need assistance with your specific app or deployment model, contact Esper Support.
Please sign in to leave a comment.
Comments
0 comments