Android POS and WebView shell
The Android agent speaks the same protocol as the desktop agent, uses the same receipt engine and receives cloud jobs the same way. See Install the agent to install and activate it.
Printers
| Connection | How printers are found |
|---|---|
| Built-in (Sunmi, PAX, iMin, Telpo) | Detected from the device model |
| Network 9100 | printers.manual in the config, optional subnet scan and mDNS |
| Bluetooth (SPP) | Printers paired in Android's Bluetooth settings. Android 12 and later ask for the "Nearby devices" permission (Settings → Allow Bluetooth printers). |
| USB host | Printer-class USB devices. Android asks once per printer. |
Web apps: the WebView shell
Android browsers do not trust user-installed certificates, so a web page in Chrome cannot reach wss://localhost. Instead, open your web app in the agent's WebView shell (the "JodaPrint Web App" launcher entry). The page gets window.JodaPrintBridge, and the browser SDK uses it automatically: your code does not change.
Set the shell in the device config (Dashboard → Config):
{
"android": {
"shell": {
"url": "https://pos.example.com/register",
"fullScreen": true,
"disableBack": true,
"autoStart": true
}
}
}
- The page's origin must be in allowed origins, and requests are signed as on the desktop (or use unsigned mode). The bridge is only given to frames of allowed origins.
fullScreenhides the system bars; withdisableBackthe back button stays in the web app.autoStartopens the shell after the device starts. For a dedicated kiosk, also set JodaPrint as the kiosk app in your MDM; if the MDM allows lock task mode, the shell locks the device to the app.- The shell needs Android System WebView 83 or later.
To use the WebSocket even inside the shell, pass bridge: false to the SDK.
Native apps on the same device
Other apps on the device can use plain ws://127.0.0.1:8182/v1 with the same protocol. It is off by default: turn it on in the JodaPrint app's Settings. Allowed origins and signatures apply as on the desktop.
Keep the agent running
- Allow the exemption from battery optimization when the app asks. Some brands (Xiaomi, Huawei, Oppo) also need JodaPrint allowed to "autostart" in their own settings.
- The agent starts at boot and after an update.
Managed devices
To configure many devices with an Android Enterprise MDM, see Android with MDM.
Updates
- Installed from a store: the store updates JodaPrint.
- Sideloaded APK: when a new version is available, a notification opens Settings → Download and install. The agent checks the release signature, then Android asks the user to confirm. The update is silent only when JodaPrint is the device owner (MDM-provisioned kiosks).