Kiosk Mode multi-app flow — configure a secondary app alongside your kiosk app
Android
When running a kiosk deployment that requires a secondary app — such as a SoftPOS payment processor — you need that app to launch from within the primary kiosk app, complete its task, and return control automatically, all without breaking kiosk restrictions.
Why this happens
Esper Kiosk Mode locks the device to a single designated app at boot, but it does not prevent that app from launching other installed apps using standard Android inter-app communication. Setting a secondary app's state to Show in a Blueprint makes it installed and launchable while keeping the kiosk designation on the primary app. When the secondary app finishes its task and calls finish(), Android returns focus to the primary kiosk app automatically.
Prerequisites
- A primary app ready to be designated as the kiosk app
- A secondary APK (for example, SoftPOS) already uploaded to Esper or available in the app catalog
- The primary app's code must invoke the secondary app via an Android Intent, and the secondary app must call
finish()when its task completes — confirm both with your development team before proceeding - Blueprint management permissions in the Esper Console
Steps
- Open or create a Blueprint. In the Esper Console, go to Blueprints and open an existing Blueprint for your device group, or create a new one. All app state changes for this flow are made within a single Blueprint.
- Add the primary app and set it to Kiosk. In the Blueprint, navigate to the Apps section and add your primary application. Set its App State to Kiosk. This designates it as the app the device boots directly into and locks to.
-
Add the secondary app and set it to Show. In the same Blueprint Apps section, add your secondary app.
- If the app is available on the Google Play Store, select it from the app catalog.
- If it is a private or enterprise APK, first upload it via Apps & Configuration → Enterprise Apps, then add it to the Blueprint.
-
Confirm the primary app invokes the secondary app via an Android Intent. The primary app must use a standard
startActivity()call to launch the secondary app at the appropriate trigger point (for example, when a payment event is initiated). A typical implementation looks like this:
Replace the package name and activity class with the actual values for your secondary app.Intent intent = new Intent(); intent.setComponent(new ComponentName("com.example.softpos", "com.example.softpos.PaymentActivity")); startActivity(intent); -
Confirm the secondary app returns control on completion. The secondary app must call
finish()after its task completes (for example, after payment processing succeeds or fails). This causes Android to return foreground focus to the primary kiosk app. Verify this behavior with your development team before deploying. - Apply the Blueprint to your device group. In the Esper Console, go to Devices & Groups → [Your Group], select the Blueprint tab, and click Apply. The Blueprint deploys to all devices in the group.
Verify
Verify: On a test device, confirm it boots directly into the primary kiosk app with no access to the home screen or other apps. Trigger the action that initiates the secondary app (for example, start a payment). The secondary app should take the foreground, complete its task, and return the device to the primary kiosk app automatically — without any manual navigation. The device should reflect the updated Blueprint status as In Sync in Devices & Groups within 5 minutes of applying.
If this doesn't resolve it
If the secondary app launches but does not return to the primary kiosk app, confirm that finish() is being called in all exit paths of the secondary app's Activity, including error and cancellation flows. If the secondary app does not launch at all, check that its package name and Activity class in the Intent exactly match those in the installed APK — a mismatch will cause a silent failure.
If the device does not reflect In Sync after applying the Blueprint, check the device's connectivity status in Devices & Groups → [Device Name] → Activity Feed to confirm it is online and receiving commands.
If the issue persists, contact Esper Support with the following information:
- The Blueprint name and the device group it is applied to
- The package names of both the primary and secondary apps
- A description of where in the flow the behavior breaks (launch, return, or neither)
- A screenshot of the device's Activity Feed showing recent Blueprint sync events
Still need help?
If you're unable to configure your secondary app in Kiosk Mode multi-app flow, submit a support ticket and include the names of both your kiosk and secondary apps, along with any error messages you're encountering.
Please sign in to leave a comment.
Comments
0 comments