Overview
Managed configurations are part of a specification developed by Google and the Android community for remotely configuring installed applications and devices through any Enterprise Mobility Management (EMM) system that supports it. Originally known as "App Restrictions" because of their limited initial scope, managed configurations (MCs) are now being used by Zebra to remotely configure a variety of settings, including those for device hardware, software and security.
The features of a given app that are manageable using MCs are defined in its schema. The Enterprise Browser (EB) schema is downloaded when visiting Google Play through the EMM console and selecting Enterprise Browser for administration. The schema defines the features available for consumption by the EMM, and provides the information necessary to present the app's management UI within the EMM console.† This data-driven UI method allows delivery of new features and their corresponding UI attributes as soon as they become available. For more information about configuring Zebra devices with managed configurations, see Zebra OEMConfig.
† Management UIs vary depending on the EMM system in use.
The terms "app restriction" and "managed configuration" are used interchangeably in this guide.
Requirements
- One or more Zebra devices running Android 11 or later
- A supported EMM system with EB and its schema downloaded from Google Play
- EB 5.0 (or later) installed on device(s) (can be deployed/upgraded via EMM, if necessary)
Configuring EB with MCs
At present, the full suite of EB settings can be administered only through the Config.xml
file. Over time, Zebra plans to increase the features manageable through MCs until parity with the Config.xml
file method is reached.
These methods CANNOT be used in combination (see below). Use of the Config.xml
file to configure an Enterprise Browser app CANNOT be combined with the managed configuration method; settings deployment using either of these methods overwrites the other.
The legacy method must be used if one or more desired features is not configurable through MCs. See below.
EB Config-file Processing
- Each time EB is launched, it reads the
Config.xml
file and configures the app accordingly. - When an MC file is deployed, its settings are processed and a new
Config.xml
file is created, overwriting the existing file stored as:/sdcard/Android/data/com.zebra.mdna.enterprisebrowser/config.xml
- The newly created
Config.xml
file contains only the MC-configured values; all other EB parameters return to their default settings. - Newly deployed settings take effect the next time the EB app is launched, regardless of deployment method.
- When config changes are detected by a running EB app, the following message is displayed on the device:
Click image to enlarge; ESC to exit.
NOTE: Enterprise Browser must be installed and launched on the device before any configuration file can be applied.
Launch Remotely
To launch Enterprise Browser (if installed) on a device, the following XML code can be submitted remotely through the XML pass-through feature of Zebra OEMConfig:
<wap-provisioningdoc>
<characteristic version="11.3" type="AppMgr">
<parm name="Action" value="LaunchApplication" />
<parm name="ApplicationName" value="EnterpriseBrowser" />
</characteristic>
</wap-provisioningdoc>
App Restrictions
EB app restriction categories and their corresponding bundles are described in the table below. Specific parameters for each restriction are contained in the individual tables that follow. The terms "app restriction" and "managed configuration" are used interchangeably in this guide.
Restriction Name | Description |
---|---|
Application UI Configuration | Handles parameters such as screen orientation and splash screen image and settings |
Barcode Scanning Configuration | Controls selection of DataWedge vs. EB APIs for scanning, and settings related to decoding and scanning during navigation |
Broadcast Receiver Configuration | Used to allow an EB app to communicate with and receive Intent actions from other apps running on the device |
DOM Custom Configuration | Allows for injection of settings into the document object model (DOM), which can modify a running app without changing its source code |
Kiosk Configuration | Settings related to single-app operation on a device, including the behavior of system and status bars, HOME, BACK and RECENT keys and password values |
Navigation Configuration | Handles the StartPage attribute and app-navigation settings such as HTTP/S proxies, bad URL redirects, web filtering, and black/white listing |
Application UI Configuration
Handles parameters such as screen orientation and splash screen image and settings. Default settings are shown in bold text.
Restriction Name | Supported Values | Displayed Value | Description |
---|---|---|---|
LockOrientation | AUTO PORTRAIT LANDSCAPE |
Auto Portrait Landscape |
Forces a particular screen orientation (portrait or landscape) when an EB app launches. More info. |
SplashScreenImage | User input Example: file://%INSTALLDIR%/rho/apps/app/loading.png |
Empty | Used to specify the fully qualified path of an image (.bmp , .gif , .jpg , or .png ) to be displayed at app start-up. If tag is removed or left unspecified, default EB splash screen is displayed. More info. |
SplashScreenDuration | User-input integer | 0 | Used to specify the length of time (in milliseconds) to display the image defined by the SplashScreenImage tag. Zebra recommends a duration greater than 3000 MS (three seconds) to compensate for image loading time. More info. |
Barcode Scanning Configuration
Controls selection of DataWedge vs. EB APIs for scanning, and settings related to decoding and scanning during navigation. Default settings are shown in bold text.
Restriction Name | Supported Values | Displayed Value | Description |
---|---|---|---|
ScanApiToggle | 0 1 |
Use EMDK Use DataWedge |
Controls whether to 'use DataWedge (DW) for scanning' or to use Enterprise Browser APIs through Zebra's Enterprise Mobility Developer Kit (EMDK) or another SDK. More info. |
ScannerOnNav Found under Barcode Scanning > EMDK configuration |
0 1 |
Turn Off Turn On |
Controls whether scanner is automatically disabled when navigating away from a page on which it was enabled. More info. |
DecodeVolume Found under Barcode Scanning > EMDK > EB-generatedAudioFile |
User input from 0–5 | Empty | One of three required: Used to set the volume of the device beeper when a barcode is scanned. More info. |
DecodeFrequency Found under Barcode Scanning > EMDK > EB-generatedAudioFile |
User input Example: 0xFFFF |
Empty | Two of three required: Used to set the frequency of the device beeper to signal a successful scan decode. Frequency must be within the range of the beeper. More info. |
DecodeDuration Found under Barcode Scanning > EMDK > EB-generatedAudioFile |
Integer from 0–5000 | Empty | Three of three required: Used to specify the duration (in milliseconds) of the device beeper sound when a barcode is scanned. More info. |
ExistingAudioFile Found under Barcode Scanning > EMDK configuration |
User-input string Example: /enterprise/device/enterprisebrowser/alarm.wav |
Empty | Overrides settings of EB-generatedAudioFile parameters. Used to specify a device-resident .wav or .ogg file to be played when a scanned barcode is successfully decoded. A blank field plays no sound or uses the three parameters (above, if specified) for EB-generated sound. More info. |
Broadcast Receiver Configuration
Used to allow an EB app to communicate with and receive Intent actions from other apps running on the device. Default settings are shown in bold text.
Restriction Name | Supported Values | Displayed Value | Description |
---|---|---|---|
IntentReceiver | 0 1 |
Turn Off Turn On |
Determines whether an Enterprise Browser app receives intent actions, which work with Android intents to facilitate inter-application communication. More info. |
IntentAction Found under Broadcast Receiver > ItemActionList |
User input Example: android.intent.action.VIEW |
Empty | Specifies the Action for which the receiver is to be registered. At least one IntentAction value is required for Receiver registration; the IntentAction value can be Android-defined or custom. More info. |
IntentCategrory Found under Broadcast Receiver > ItemCategoryList |
User-input string Example: android.intent.category.LAUNCHER |
Empty | Used to specify the Category under which the receiver is to be registered. There can be zero or many IntentCategory tags; values are Android-defined. More info. |
DOM Configuration
Allows for injection of settings into the document object model (DOM), which can modify a running app without changing its source code. Default settings are shown in bold text.
Restriction Name | Supported Values | Displayed Value | Description |
---|---|---|---|
EBLibraryInjection | 0 1 |
Turn Off Turn On |
Used to inject EB JavaScript API libraries (ebapi-modules.js and elements.js ) into all HTML pages of a running app, bypassing the requirement to manually reference them on each page. More info. |
Kiosk Configuration
Settings related to single-app operation on a device, including the behavior of system and status bars, HOME, BACK and RECENT keys and password values. Default settings are shown in bold text.
Restriction Name | Supported Values | Displayed Value | Description |
---|---|---|---|
FullScreen | 0 1 |
Turn Off Turn On |
Used to sets the Enterprise Browser app to display in full screen mode, unless specifically minimized using the Application API. More info. |
StatusBar | 0 1 |
Hidden Shown |
Used to disable the Android Status Bar, which could otherwise allow a user to launch another app or activity, effectively quitting the kiosk app. More info. |
NavigationBar | 0 1 |
Hidden Shown |
Controls whether the navigation bar is displayed within the Enterprise Browser app. More info. |
HomeButtonAction | 0 1 |
Turn Off Turn On |
Used to disable the HOME key, which could otherwise quit the kiosk application and invoke the Android Launcher. More info. |
BackButtonAction | 0 1 |
Turn Off Turn On |
Used to disable the BACK key, which could otherwise invoke the previously active app, activity or Android Launcher, potentially quitting the kiosk app. More info. |
RecentButtonAction | 0 1 |
Turn Off Turn On |
Used to prevent display of the Recent Apps list when the "recent" button is pressed, which could otherwise allow the user exit the current app by selecting a different app from the "recent" list. More info. |
VolumeButtonAction | 0 1 |
Turn Off Turn On |
This parameter can disable the hardware controls for audio volume, which could otherwise silence the kiosk app. More info. |
ExitPassword | 0 1 |
Turn Off Turn On |
Used to enable a password prompt when quitting an EB app. Password is stored using the ExitPasswordValue attribute. More info. |
ExitPasswordValue | User-input alphanumeric string Example: MyPass0773H |
Empty string | Used to store the password for quitting an EB app when ExitPassword parameter is enabled. More info. |
Navigation Configuration
Handles the StartPage attribute and app-navigation settings such as HTTP/S proxies, bad URL redirects, web filtering, and black/white listing. Default settings are shown in bold text.
Restriction Name | Supported Values | Displayed Value | Description |
---|---|---|---|
StartPage | HTML file on the device or a server | file://%INSTALLDIR%/menu.html |
Defines the start page of the Enterprise Browser application displayed at launch. More info. |
BadLinkUri | HTML file on the device | file://%INSTALLDIR%/badlink.html |
Specifies the "badlink" URI file to be displayed when: - An error occurs when attempting to navigate to a page (e.g. no network connection) - A page times out (according to the timeout interval set in NavTimeout) - The user presses the stop button More info. |
NavigationTimeout | Admin-entered length of time | 45000 | The length of time (in milliseconds) the application should wait to establish communication with the relevant server (as opposed to waiting for a page to fully load) before displaying the "bad link" message. Default = 45 sec. More info. |
HttpProxy | URL of a valid HTTP proxy server and port number. Example: http:my.proxy.com:8080 |
Empty string | Specifies the URL and port number for an HTTP proxy server. More info. |
HttpsProxy | URL of a valid HTTPS proxy server and port number. Example: https:my.proxy.com:8181 |
Empty string | Specifies the URL and port number for an HTTPS proxy server. More info. |
WebsiteFiltering Found under Navigation > WebUrlFiltering |
0 1 |
Turn Off Turn On |
Controls whether web sites are filtered by URIs specified in the related WhileListingUrls (explicitly allowed) and BlackListingUrls (explicitly blocked) configuration tags. More info. |
UrlWhitelist Found under Navigation > WebUrlFiltering |
Admin-created whitelist | Empty string | Explicitly ALLOWS one or more websites (as listed) to be visited by an app when WebsiteFiltering is turned ON. More info. |
UrlBlacklist Found under Navigation > WebUrlFiltering |
Admin-created blacklist | Empty string | Explicitly BLOCKS one or more websites (as listed) from being visited by an app when WebsiteFiltering is turned ON. More info. |