Technical Guide

Base

FieldDescription

configVersion

string A free-form user-defined string that can be used to indicate the version of this configuration file being published. Added as a convenience field to help customers track which configuration file version is on the device.

license

string (mandatory) A customer-specific license key to provide access to the Launcher. There will only be one key assigned per customer and should be applied to all the customer's devices. To obtain a license key, request one from the BlueFletch sales representative.

Listing of LDAP or security groups expected; each security group will contain an array of applicable application groups.In the example above, users that log in as "Manager" will get applications listed under GroupA, GroupB and "*"."*" is the default security group, and will be applicable when no one is logged into the device. Note that this only works in conjunction with 'groups' below 3.2.x. Beginning 3.2.x, group_inclusion can also be applied to "layouts".

groups

Contains the "whitelist" of package names for each application group. This is a simplified listing of packages. For more control, use "layouts".

object Defines which applications to display based on Login state.

object (optional) Defines advanced global settings for the layout.

object Key Value pairs of settings that control processing. See Settings for details.

object Key Value pairs of Luggage Tag settings. Customizes how Launcher locks the device when it's not on a network listed in the approvedNetworks array.

approvedNetworks

array A list of networks that's been approved for a device to use. Apply a luggageTag object to enforce.

defaultSession

An object representing the default session that will be stored in the Launcher session content provider if no user is logged in.

patterns

array A set of pattern objects representing a configuration for associating search text with applications. If the search text matches the configured regex pattern, the application specified will be displayed, and could also specify the intent and extras that will be passed to the app when the search result is tapped.

extendedAttributes

object Can be used to specify key-value pairs that customers can use to provide additional custom settings.

protectedList

array List of package names that are not deleted when calling disablePackages. Built-in protected packages include the BlueFletch applications Launcher, Messaging, Support Tool, Platform Services, and Remote Control. Additional packages can be added to the array.

array This is a list of packages that launcher is to disable. Launcher will disable these at device boot, or if the packages get installed. This is available starting in 2.8.x.WARNING: Disabling system applications may affect device behavior. Always test changes before deploying to production.

object Contains information on an Organization's device theme. See Theme for details.

object Theme configuration values associated with site objects in the siteTheme column of a sitelist.csv file.

emsSupportTool

object Key Value pairs that control support application processing. See Support Application Configurations for more information.

notifications

array Collection of MQTT Broker Object connection settings. See Messaging Configurations for more information.

auth_ldap

object Key Value pairs of settings that control LDAP Authorization.

array An ordered list of LDAP domain/connection point objects, giving multiple authentication options in case one service is unavailable. The authentication module will attempt each one until it successfully logs a user in with the provided credentials.

auth_adal

object Key Value pairs of settings that control ADAL Authorization.

auth_okta

object Key Value pairs of settings that control OKTA Authorization (Supported OKTA APK 2.x). Prior to 2.x, see Settings for Okta Auth Settings.

auth_oktaRest

object Key Value pairs of settings that control Okta REST Authorization.

auth_msal

object Key Value pairs of settings that control MSAL Authorization for Azure Active Directory.

auth_oauth2

object Key Value pairs of settings that control AppAuth/OAuth2 Authorization.

knownLaunchers

array List of additional launcher package names to check when setting BlueFletch Launcher as default. Packages built-into the list include Google and Honeywell launchers; additional packages can be added to the array.

object Key Value pairs of settings that control keyboard.

object BlueFletch Browser defaults to these settings unless overridden by browserOverrides object.

object Custom intents to fire at certain processing points, such as Login, Logout, Screen On, Boot, Cradle and Un-Cradle.

customField

object Configuration to define the format and source for custom UI fields.

object Configurations for Secure Notification Support.

externalSiteInfoFinder

object Configuration for using an external Site Location finder service.

externalManualSiteSelect

object Configuration for using an external Manual Site Selection. Introduced in Launcher version 3.19.19.

orientationOverride

object Configuration for changing the BlueFletch Launcher orientation based on device model. Note that this is for the Launcher only, and does not affect orientation for the entire device or other applications.

object Configuration for specifying UI or file assets to use in UI rendering.

epmConfig

object Enterprise Password Manager settings. For future implementation.

object Key-value pairs for configuring the BlueFletch Chat application. For the required values, consult the BlueFletch Chat Technical Guide.

authorizedClients

array Starting in 3.15.x, a string array of packages that will be allowed to read from the LauncherProvider. To prevent all apps from reading the LauncherProvider session, set this [], omit or set to null to disable application checking. Default is null. Introduced in Launcher version 3.15.4.

object Key-value pairs for configuring the Device Finder application. For more details, see the Device Finder Technical Guide. Introduced in Launcher version 3.16.15.

object Key-value pairs for configuring the Unique Login feature for the BlueFletch Launcher. See Unique Login for more details. Introduced in Launcher version 3.18.10.

object Key-value pairs to enable a device to accept API security via device tokens. Introduced in Launcher version 3.18.10.

object Provides the capability to add layouts by comparing regular expressions to users' session attributes. Introduced in Launcher version 3.19.15.

object Key-value pairs for configuring the Enterprise Password Manager (EPM) Plugin. Launcher can works with EPM to auto-fill credentials or click buttons on native apps defined in the configuration. Introduced in Launcher version 3.22.25.

object Key-value pairs for configuring Secure Device Mode. The separate configuration was introduced in Launcher version 3.22.31.

Settings

FieldDescription

activateSearchBar

boolean If set to true will display the search bar on the Launcher home screen. Tapping on search bar will trigger the search activity. This setting was deprecated in Launcher v3.13.9, but re-enabled in v3.14.15. If using Quick Start, set this value to false, and search activity can still be displayed as an Application Object:* {“package”: “com.bluefletch.launcher”, “activity”: “com.bluefletch.baselauncher.search.SearchActivity”, “label”: “Search”}

enableNotifications

boolean Determines whether the notifications service will be started. Default is true.

idleTimeInMinutes

integer A number value corresponding to # of minutes the launcher will automatically logout the user. Countdown for idle time starts when the screen turns off, and timer resets when the screen is woken up. If the device is not woken up before the timer expires, the screen will wake up logged out.

maxSessionTimeInMinutes

integer A number value corresponding to # of minutes the launcher will automatically logout the user. Countdown for max session time starts on user login.

requireAuthOnScreenOn

boolean If true, launch the configured Login page when the device screen is turned on. Default is false.

requireAuthLockDelay

integer Time in seconds before the Launcher requires re-authentication after the device goes to sleep (only applies if requireAuthOnScreenOn is set to true).

useSecondaryAuth

string Indicates type of secondary auth during re-authorization. Values are "none", "pin", "face", "nfc", and "barcode" (NFC available in EMS Auth 3.2.2). Default is none.

alternateSecondaryAuth

string Sets an alternative secondary authentication method available during reauthentication training. Accepted values are "pin", "face", "nfc", and "barcode". Only applied if useSecondaryAuth is set and is a different value than alternateSecondaryAuth.If configured, during the secondary authentication training immediately following login there will be an option to use the alternate method for reauthentication.

secondaryAuthRequired

boolean If set to true, will logout the user if they cancel creation of pin. Default is false. Available starting Launcher 3.3.x. Starting 3.6.x, user will have the option to logout during verification as well.

secondaryAuthPinLength

integer Set the minimun number of digits required for pin. Minimum value is 4, default is 6 if not specified. Available in Auth 3.1.x.

pinMaxLength

integer Number of required digits for the PIN, default is 6 if not specified, minimum of 4, maximum of 10. This setting supercedes secondaryAuthPinLength, available from Auth 3.6.x and above.

pinEnforceConsecutiveRule

boolean If true will not allow more than 3 consecutive similar digits. Default is set to true. (e.g. 1111 will not be allowed, but 1112 is allowed). Available from Auth 3.6.x and above.

pinEnforceSequentialRule

boolean If true will not allow more than 3 sequential digits up or down (e.g. 1234 is not allowed but 1235 is allowed). Default is set to true. Available from Auth 3.6.x and above.

pinEnforceBlackList

string Comma-delimited list of PIN codes that cannot be used by the user (e.g. if 1112 is specified, even if it passes the consecutive rule, it will be disallowed by blacklist). Available from Auth 3.6.x and above.

pinMaxRetryCount

integer During verification, max number of incorrect attempts allowed, after which the currently logged in user is forcibly logged out. Available from Auth 3.6.x and above.

pinAutoSubmit

boolean If set to false, will require the user to tap on the Enter key after entering their PIN. If set to true, the PIN will be submitted after last entry (based on pinMaxLength). Default is true. Available from Auth 3.6.x and above.

secondaryAuthQuickStartPackage

string Allow one package to be opened from the PIN unlock screen. After a PIN has been setup during a login session, when a user opens the device they will see this app's icon in the lower right corner and can choose to access the package's main activity without unlocking the device. e.g. If the value is "com.android.dialer", the user will see the Android phone icon and can launch the activity com.android.dialer.app.DialtactsActivity.

secondaryAuthQuickStartIcon

string Overrides the default application icon used used to launch secondaryAuthQuickStartPackage with an image defined by file location on the device. e.g. "/sdcard/DCIM/icons/bluefletch_logo.png".

useFaceRecognition

Deprecated, start using useSecondaryAuth. boolean If true use the face recognition functionality to re-authorize the user during re-authentication. Default is false.

adminUserId

string The ID used for local device administration. Defaults to the built-in local admin ID.

adminPassword

string Field that contains the hash of the local admin password. Defaults to the built-in local admin password.

externalAuthIntentActions

string Allows Launcher to listen for authorization login/logout requests from other applications. Format as "['action', 'action2']".

useAppEnabler

boolean By default (if set to false) the launcher will only hide application icons corresponding to the whitelist. Typically this should be sufficient as users will not be able to launch applications if the launcher is present. If set to true, the launcher will perform an additional step to disable the application at an OS level (installed but not usable) if not part of current session whitelist.

enableOptiko

boolean Set to true if Support agent is present. This will report login, store information, etc. to the Support agent. Deprecated in 3.x, value is always true.

authBrokerService

boolean Set to true if Auth Service Broker is needed.

nfcDataTypes

string The data type/tag that contains the user credentials.

device_lost_hours

integer Used within Device Information. Represents number of hours to have not heard from a device to indicate as lost.

vision_threshold

double When using vision re-auth, what is the percentage threshold to indicate a match. ie. 0.45.

vision_attempts

integer When using vision re-auth, number of attempts to match a face to the vision database.

authVisionDatabaseUrl

string URL that points to a zipped file called "database", containing but not limited to the following files: "data", "facenet.pb", "label", "model", "mtcnn.pb". Access to the database.zip can refine the facial recognition software's competence at matching faces through machine learning. Ask a BlueFletch account manager if you require the URL.

useSiteInfoService

boolean Indicates to use the sites csv file to determine the location of the device. Default is false.

sitelistUrl

string URL that points to a CSV file to download. The file should be named sitelist.csv and contain site IDs, site names, and other values associated with a device's possible store/office locations. This setting is available in Launcher 3.12.7+.

refreshSiteOnStartup

boolean If set to true, will attempt to always determine current site after a reboot. Default is false.

refreshSiteRequiresNetwork

boolean In case the device does not have an IP address, setting this to true will make the Launcher wait until the device receives an IP address, after which it will re-attempt site location. Default is false.

refreshSiteOnNetworkChange

boolean Forces a refresh of site ID when a network change occurs. Default is false. Introduced in Launcher version 3.21.25.

defaultSiteId

string If Site Info Service is not used, then this value will be used to set a default site for the device.

defaultLocation

string If the Site Info Service location name is not set, then this value is used as a placeholder text for the location on the device.

distanceInMeters

integer When using the Site Information Service, the radius distance in meters for GPS Location matching.

screenTimeout

integer Number of seconds for device screen timeout (15, 30, 60, 120, 300, 600). Support on Zebra devices starting in launcher 3.3.x.

onCradleIgnoreLogout

boolean If set to true the Launcher will not logout the user when the device is cradled or starts charging. Default is false. This setting is available starting Launcher 3.9.6+.

cradleLogoutDelayInSeconds

integer If set to greater than 0, the Launcher will not immediately logout the user. Instead when the device is cradled or docked, the Launcher will prompt the user to either continue with the session or logout immediately. If the user does not respond within the # of seconds specified, the user will be logged out automatically, the default is 0 (no prompt). This setting is ignored if onCradleIgnoreLogout is set to true.This feature requires that the draw-over permission, android.permission.SYSTEM_ALERT_WINDOW, be granted.

disallowSiteChange

boolean If set to true, the user will not be able to manually launch the change location activity or retry the automatic location service. Default is false, in which case both are allowed.

disallowManualSiteChange

boolean If set to true, the user will not be able to manually launch the change location activity but can retry the automatic location service. Default is false, in which case both are allowed.

disallowLoggedInSiteChange

boolean If set to true, the user will not be able to manually launch the change location activity if they are logged in. Default is true.

nfcTurnOff

boolean Indicates NFC should be turned off at BOOT and during Logout. False indicates do nothing with NFC. Valid values are "true" and "false", defaults to "false".

nfcTurnOnAtLogin

boolean Indicates NFC should be turned On after user login. False indicates do nothing with NFC. Valid values are "true" and "false", defaults to "false".

enableNfcTapLogin

boolean If true, Launcher will listen for NFC taps as a form of authentication. Defaults to false.

lockInMotion

boolean Indicates that the device should be locked while the user is driving. false indicates that the device should not be locked while the user is driving. Valid values are true and false, defaults to false.

lockInMotionConfidence

integer Indicates the needed level of confidence that the user is driving in order to lock the device. For instance, if this is set to 50, the device will be locked when we are at least 50 percent confident that the user is driving. This value can range from 0 to 100, and the default value is 80. Note that this setting will only be utilized if lockInMotion is set to true.

lockInMotionInterval

integer Indicates the interval (in milliseconds) to query motion information from the system. Default is 5000 ms (5 seconds). Introduced in Launcher version 3.11.4.

lockInMotionUseGps

Indicates that the device will be using GPS to determine if the user is driving. false indicates that the device will not use GPS for lock in motion detection. Note that this setting will only be utilized if lockInMotion is set to true. Only set to true if the device is GPS-enabled. If set to true on a non-GPS device, motion lock will not engage.

lockInMotionSpeedInMph

Indicates the movement speed threshold in miles per hour required to lock the device. For example, if it is set to 2, the device will be locked if the detected speed is greater than or equal to 2 miles per hour. Default is 5 miles per hour. Note that this setting will only be utilized if lockInMotionUseGps is set to true.

lockInMotionGpsUpdateInterval

Indicates the GPS minimimum time interval in milliseconds to update. For instance, if it is set to 10000, the GPS update time interval will run every 10 seconds. Default is 5000 milliseconds. Note that this setting will only be utilized if lockInMotionUseGps is set to true.

lockInMotionGpsMinDistanceThreshold

Indicates that the detected speed is greater than the distance between GPS updates in meters. For instance, if it is set to 5, the GPS updates will run every 5 meters. Default is 0, which means that GPS updates will constantly update. Note that this setting will only be utilized if lockInMotionUseGps is set to true.

clearAppDataOnLogout

boolean If set to true will clear the application data for all applications opened within the user session on logout. Default is false.

clearAppDataIncludeList

string Comma-delimited string of packages that will be cleared of application data on logout, regardless of whether they were opened or not. Use for applications that are not directly opened by the user from the Launcher home screen.

clearAppDataExcludeList

string Comma-delimited string of packages that are exempt from clearing of application data even on logout (but recent tasks will be removed, unless specified in the clearRecentExcludeList).

clearRecentIncludeList

string Comma-delimited string of packages that must be killed when the user logs out or when the device is cradled (Honeywell only). This is typically used for scenarios where one app starts another app, and Launcher is unaware it needs to kill the 2nd app. If clearAppDataOnLogout is set to true, the package must also be specified in the clearAppDataExcludeList.

clearRecentExcludeList

string Comma-delimited string of packages that are exempt from being killed when the user logs out or when the device is cradled (Honeywell only). If clearAppDataOnLogout is set to true, the package must also be specified in the clearAppDataExcludeList.

clearRecentTasksDelay

int Delay in milliseconds before clearing recent tasks. Default is 2000.

stopVisibleTasks

boolean If set to true, clears all applications in the Recents queue on logout without clearing app data, unless separately configured. Default is true. Introduced in Launcher v3.18.x. This setting is for devices running a signed BlueFletch Platform Service APK, version 1.3.x or above. BlueFletch clears all recent applications on logout by default on Zebra devices.

authProfileManager

boolean If set to true, will enable integration with Zebra's Profile Manager. Default is false.

disableRecents

boolean If set to true, the recents button will be disabled. Default is false.

portraitDiagonalInches

integer Indicates the transition point between Launcher defaulting to portrait and Launcher defaulting to landscape (tablet) mode. The transition is determined by the diagonal screen measurement in inches for a device. Default is 7. e.g. If a device display's diagonal size is greater than or equal to 7 inches, Launcher will start in landscape by default.Overriden by orientationOverride.

unsecuredDeviceTimeoutInSecs

integer Indicates the number of seconds the device is given to be logged in or cradled before an indefinitely looping alarm sounds until the device is logged into or cradled. See secured device for details.

unsecuredDeviceEffects

boolean Indicates whether a warning countdown alarm should sound when 12 seconds or less are remaining on the unsecured device timeout. Default is false.

secureDeviceSnoozeDuration

integer Indicates the number of seconds for which a looping alarm can be silenced without logging into or cradling a secured device. Only applied if unsecuredDeviceTimeoutInSecs is also set.

secureDeviceMaxSnoozeCount

integer Indicates the number of times that a looping alarm can be silenced without logging into or cradling a secured device. Default is 1. Only applied if unsecuredDeviceTimeoutInSecs is also set. Introduced in 3.20.12.

unsecuredDeviceEffectsSound

string This allows using a different sound for the unsecured device countdown effect. The setting can reference a file on the sdcard or a file referenced in the Assets Manager configuration. Introduced in 3.18.13.

unsecuredDeviceAlarmSound

string This allows using a different sound for the unsecured device alarm. The setting can reference a file on the sdcard or a file referenced in the Assets Manager configuration. Introduced in 3.18.13.

unsecuredDeviceSoundVolume

integer This allows for changing the sound volume used with the unsecured device effect and alarm sounds. Is a value from 0 to 100 and represents percentage of max volume. Default is 100. Introduced in 3.18.13.

logLevel

string Determines the level of log to be logged in Support Agent. Valid values are "verbose", "debug", "info", or "error" . If set, only the level of logs set and below will be logged. Defaults to "info".

suppressUserId

boolean If set to true, will tell launcher to suppress reporting User Id and User Name to Support application events. Also will not write User Id or Name to application logs. Default to false. Introduced in 3.9.22 of launcher.

knoxLicenseKey

string Specify the Knox Customization License Key for using Samsung Device running Knox 3.x or newer.

knoxProKioskMode

boolean Set to true to use Launcher in ProKiosk mode, which also disables the Recents button. If not specified in the configuration file, the default value will be false. This option is available in Launcher 3.18.11 and higher.

thirdPartyAuthKey

string A SHA-256 hashed key. Launcher will listen for login and logout messages from a third-party/customer-supported authentication application. This security key will need to be sent from the third-party authentication application to support this capability.

useLowBatteryMode

boolean If true, the device will enter Low Battery Mode, a locked state where the user cannot interact with the device, once the battery level falls to the percentage defined in lowBatteryModeStartLevel; the device will exit Low Battery Mode once the battery is charged to the level defined in lowBatteryModeEndLevel. Default is false.

lowBatteryModeStartLevel

integer The threshold, in percentage of battery life, for locking the device in Low Battery Mode mode if useLowBatteryMode is true. Default is 10.

lowBatteryModeEndLevel

integer The threshold, in percentage of battery life, for exiting Low Battery Mode mode if useLowBatteryMode is true. Default is lowBatteryModeStartLevel + 5 (e.g. if lowBatteryModeStartLevel is not defined, lowBatteryModeEndLevel defaults to 15).

hideNotificationsOpenZone

boolean If set to true, Launcher will hide all SMS notifications when the user is not logged in. Default value is false.

includeUserApps

boolean If true, all apps installed by the user will be added to a device's layouts. Introduced in Launcher version 3.17.29.

authorizedAppStores

string Comma-delimited list of one or more package name(s) of trusted application stores. If defined, only apps downloaded from these stores will be displayed in a device's layouts when includeUserApps is true. Apps belonging to an authorized store can be manually deleted by long-pressing on their icon in a layout. Introduced in Launcher version 3.17.29.

userAppInstallCutoffTime

long System/epoch date/time to millisecond level (13 digits). If set in conjunction with includeUserApps and authorizedAppStores, Launcher will only display store-downloaded apps in the layout if the apps were installed after that date. Introduced in Launcher version 3.17.29.

includeUserAppsWhenAuthorized

boolean If true, Launcher will only display user-installed apps in the layout while logged into an authenticated session. Only applies if includeUserApps is also true. Default is false. Introduced in Launcher version 3.19.4.

verifyIdpOnReauth

boolean If true, the authentication configuration will need to set redirect_url_verify to "com.bluefletch.ems.auth://verified"; the authentication module will refresh cookies on the browser if reauthentication is successful. Default is false. Introduced in Launcher version 3.17.29.

secondaryAuthWhenScreenOff

boolean If true, the reauthentication screen will be displayed while turning the screen off, not while turning the screen on. This will retain the most recent application to the foreground upon waking the device, not bring Launcher to foreground. If false, the most recent application will be minimized after reauthentication on screen wake. Default is true. Introduced in Launcher version 3.19.4.

The proceeding settings will be deprecated starting Launcher 3.x. If using Launcher 3.x, refer to Auth Provider Configurations.

FieldDescription

The following only applies if using LDAP based identity provider:

ldap_hostname

Hostname of the LDAP server (LDAP Auth only).

ldap_port

Port of the LDAP server (LDAP Auth only).

ldap_domain

The domain of the user when logging in, i.e. @domain.

ldap_rootDN

The Root DN of where the users can be searched after authentication.

ldap_useHttps

Set to true to use LDAPS when authenticating.

The following will be used to configure the internal Oauth2 Broker:

oauth2_claim_userId

The field to use for the userId claim (used by internal broker).

oauth2_claim_username

The field to use for the PTT Pro user name field.

The following are for OKTA or OpenID connect identity providers:

okta_issuer_uri

The configured Issuer URI for the identity provider.

okta_client_id

The configured client ID for this application.

okta_redirect_uri

The configured redirect callback URI for this application.

okta_scopes

The scopes where this authentication applies.

okta_force_logout

This allows for overriding the default logout End Session URL. This is required for OneLogin.

The following are for ADAL connect identity providers:

adal_authority

Configured resource ID for this application.

adal_resourceId

Configured resource ID for this application.

adal_clientId

Configured Client ID for this application.

adal_redirectUri

Configured callback URL for this application.

adal_claim_userId

Passthrough field containing the userID (e.g. unique_name).

adal_claim_username

LDAP passthrough field containing the user's display name.

adal_claim_groups

LDAP passthrough field containing the groups (e.g. equivalent to MemberOf).

adal_claim_baseUrl

The base url for the ADFS environment.

adal_claim_defaultDomain

Optional, to pre-populate the username field with the domain prefix.

The following are used within OKTA connect identity providers:

auth_location_field

An optional setting that tells authorization which field in the auth provider response contains Location information. Used in conjunction with auth_location_regex.

auth_location_regex

A regular expression to extract the location value from the location field. Used in conjunction with auth_location_field.

auth_group_field

An optional setting that tells authorization which field in the auth provider response contains Group information. Used in conjunction with auth_group_regex.

auth_group_regex

A regular expression to match against the group information.

auth_group_regex_true

If the regular expression auth_group_regex returns true (found a value), will use this group value.

auth_default_group

A default group.

auth_role_field

An optional setting that tells authorization which field in the auth provider response contains User ROLE information. Used in conjunction with auth_role_regex. Available AUTH 1.1.x.

auth_role_regex

A regular expression to match against the role information.

auth_role_regex_true

If the regular expression auth_role_regex returns true (found a value), will use this Role value.

auth_default_role

A default user role.

Luggage Tag

FieldDescription

enable

boolean Indicates that the device should be locked while the device is connected to an unapproved network. False indicates that the device is free to connect to any network and will not activate Luggage Tag Mode.

thresholdInMinutes

integer Indicates the number of elapsed minutes while the device is on an unapproved network needed before locking the device.

logo

string The URL for an image to be displayed on the Luggage Tag view. If not set, Launcher will skip this and display other information if available.

line1

string Indicates the first line of an address for people to contact on the Luggage Tag view when attempting to help return a device to where it should be.

line2

string Indicates the second line of an address for people to contact on the Luggage Tag view when attempting to help return a device to where it should be.

email

string Indicates a preferred email address for people to contact on the Luggage Tag view when attempting to help return a device to where it should be.

phoneNumber

string Indicates a preferred phone number for people to contact on the Luggage Tag view when attempting to help return a device to where it should be.

unlockPassword

string The password required to unlock the device out of Luggage Tag Mode. If not available, Launcher will default to validating against the admin password. Password must be a SHA-256 hashed string.

alarmLoopInMinutes

integer Indicates the number of elapsed minutes needed while Luggage Tag Mode is activated to play the alarm and continues to replay every time the same minutes has elapsed again until Luggage Tag Mode is deactivated.

Intents

Custom intents to fire at certain processing points, such as Login, Logout, Screen On, Boot, Cradle and Un-Cradle.

FieldDescription

preLogin

array A collection of Custom Intents to invoke before the authentication process begins.

login

array A collection of Custom Intents to invoke after user logs into the device.

logout

array A collection of Custom Intents to invoke after user logs out of the device, prior to launcher completing full logout.

postLogout

array A collection of Custom Intents to invoke after user logs out of the device. This occurs after all Logout actions are completed.

boot

array A collection of Custom Intents to invoke after device boot.

uncradle

array A collection of Custom Intents to invoke after the device is removed from the cradle.

cradle

array A collection of Custom Intents to invoke after the device is placed on the cradle.

screenOn

array A collection of Custom Intents to invoke after the screen turns on.

motionLockEnter

array A collection of custom intents to invoke when lockInMotion engages on the device.

motionLockExit

array A collection of custom intents to invoke when the device exits from lockInMotion state.

siteChange

array A collection of custom intents to invoke when a site change is detected.

Example:

"intents" : {
    "preLogin": [],
    "login": [],
    "logout": [],
    "postLogout": [],
    "boot": [],
    "uncradle": [],
    "cradle": [],
    "screenOn": [{
      "package": "com.android.calculator2",
      "typeIntent": "a"
    }],
    "motionLockEnter": [],
    "motionLockExit": [],
    "siteChange": []
  },

Custom Intents

FieldDescription

package

string The package to invoke.

action

string Android action, or special Platform Action.

category

string Android Category.

class

string The Class name within the package.

flags

integer Flags to use during firing the intent. Currently supports the value of 1, which indicates new task.

typeIntent

string The type of intent, values b, i, a, d or p. b = Broadcast (default), i = implicit intent, a = start Activity, d = delay, p = platform.

extras

Hash Map Key/value pairs of additional data to send. Example:

"extras": {"market": "retail", "region": "northeast"}

data

string Data to send with the intent.

filter

object Object for defining which key-value pair of the session object will trigger the intent. Examples: `"filter": { "session.groups": "Associates

Examples:

a. To start an application, use intent type "a" and supply the package name.

{
      "package": "com.android.calculator2",
      "typeIntent": "a"
}

b. To invoke an action for an application, use intent type "a", provide the action, and optionally the package name.

{
    "action": "com.bluefletch.ems.remotecontrol.ACTION_START",
    "package": "com.bluefletch.ems.emm.remoteagent",
    "class": "com.bluefletch.ems.remotecontrol.RemoteActivity",
    "flags" : 1,
    "typeIntent": "a"
}

c. To delay processing before another intent is invoked, use the 'delay' intentType. Use type "d", and provide the delay, in milliseconds, within "data".

{
    "typeIntent": "d",
    "data": "5000"
}

Special Platform Action (if typeIntent is 'p')

  • CLEARCACHE : This special action will invoke the Platforms Clear cache for the supplied package.

  • LOGIN : This special action will invoke the Launcher Login processing flow.

Example:

"intents" : {
    "login" : [
        {
            "action": "com.bluefletch.ems.browser.ACTION_SET_CONFIG",
            "package": "com.bluefletch.ems.browser",
            "typeIntent": "a",
            "extras":
              {
                "showTitle": true
              }
         }
    ],
    "logout":[
         {
              "action": "CLEARCACHE",
              "package": "com.android.chrome",
              "typeIntent": "b"
         }
    ],
    "boot" : [],
    "uncradle": [
         {
             "action": "LOGIN",
             "typeIntent": "p"
         }
    ],
    "cradle": [],
  },

Layout Settings

Layout settings defines advanced global settings for displaying the icons on the Launcher workspace.

FieldDescription

columns

integer The number of icon columns for devices in the fixed portrait mode. If not specified, the default value is 3 (minimum of 3).

tabletColumns

integer The number of icon columns for devices in landscape mode. If not specified, the default value is 6 (minimum of 3).

iconSize

string Set to "normal" to use the standard icon size for the device. Set to "large" to display larger icons (1.5x). Set to "fit" to make the icon width fit the available space, based on the column size. The default value is "normal".

showLabel

boolean Set to false to hide the label on all the icons. The default value is true.

boldTypeLabel

boolean If set to true, the labels will be rendered using boldface type. The default value is false.

labelFontSize

number If set will change the font size of the icon labels. Default is 14.

quickStartIconSize

string Determines the size of icons pinned to the bottom of the launcher when there is a folder object with "quickStartFolder": true. The only valid string is "small", which sets the icons at a smaller size. If empty, undefined, or invalid, the icons default to the standard size (same as "iconSize": "normal" ).

pageWidthOffsetOverride

integer This allows for adjusting the displayed page width. The default value is 14.

Example:

    "layoutSettings" : {
       "columns" : 3,
       "tabletColumns" : 6,
       "iconSize" : "normal",
       "showLabel" : true,
       "boldTypeLabel" : false,
       "labelFontSize" : 14,
       "quickStartIconSize": ""
    },

Layouts

Layouts represent which applications the launcher will display, based on who is logged in.

FieldDescription

GROUP

object An application object that represents applications for which the logged user has access. Example: manager, associate. Each GROUP has a collection of Application, Folder, and/or Shortcuts. See Application Object, Shortcut Object, Folder Object, or Action Object for additional details.

Example:

    "layouts" : {
        "Manager":[ -Logged in Managers will have access to these Applications.- ],
        "Associates":[ -Logged in Associates will have access to these Applications.- ],
        "*": [ -OPEN ZONE definition of applications- ]
    },

Group Inclusions

Group Inclusions allow you to set application groups for identity provider groups.

FieldDescription

group_inclusion

objects Contains the list of relevant identity provider groups, along with an array of application groups that will be applied when a user belongs to that identity group. Each application group can be defined in the layouts section and will be merged together.

Example:

In the example below, when a user with a Managers group logs in, he will see all three application group sets, while the user with a WarehouseAssociate group will only see the Back office and Open zone apps.

{
  "configVersion" : "example configuration",
  "group_inclusion" : {
    "Managers" : ["BackOfficeApps", "FloorApps", "OpenZone"],
    "WarehouseAssociate" : ["BackOfficeApps", "OpenZone"],
    "FloorAssociates" : ["FloorApps", "OpenZone"],
    "Cashiers" : ["FloorApps", "OpenZone"],
    "*" : ["*"]
  },
  "layouts" : {
    "BackOfficeApps" : [
      {  "package" : "com.bluefletch.receiving" },
      {  "package": "com.bluefletch.delivery" },
      {  "package" : "com.bluefletch.itemlookup" }
    ],
    "FloorApps" : [
      {  "package" : "com.bluefletch.itemlookup" },
      {  "package" : "com.bluefletch.bopis" },
      {  "package": "com.bluefletch.mpos" }
    ],
    "OpenZone" : [
      {  "package" : "com.android.calculator" }
    ]
  }
  ...

Application Object

Available fields used to describe applications displayed on the Launcher home screen.

FieldDescription

package

string The package name of the application to start.

label

string The name of the application to display (optional).

activity

string The Activity to start (optional).

kiosk

boolean If set to true, will put launcher into Kiosk mode for this application (optional).

icon

string Represents a icon to overvide the default application image. Can be a local file or an asset download via assets setting. Example: assets:image or /sdcard/DCIM/icons/logo.png (optional).

nfcEnable

boolean If this Application is started by End User, and the value is "true", then enable NFC (if not on). False indicates do nothing with NFC. Valid values are "true" and "false", defaults to "false".

includeUserInfo

boolean If set to true, will pass the following user information as extras when calling the intent: EXTRA_USERID, EXTRA_USERNAME, EXTRA_GROUP and EXTRA_ACCESS_TOKEN.

intentExtras

object If populated, these key-value pairs will be added to the launching intent as extras. The value data will be sent as strings, regardless of how the data type is specified in the configuration. The values do support Custom Intents Replacement Variables. Setting added in Launcher version 3.9.15.

password

string The SHA-256 hashed version of the password required to launch the application.

allowInMotionLock

boolean If true, the application or website is allowed in motion lock. Apps that are allowed are listed at the bottom of the screen once motion lock engages. A maximum of three can be allowed. Default is false. Introduced in Launcher version 3.20.x.

Example:

    {
        "label" : "BlueFletch",
        "url" : "https://bluefletch.com",
        "icon" : "/sdcard/DCIM/icons/bluefletch_logo.png",
        "nfcEnable": true
    },
    {
        "package": "com.android.calculator2",
        "nfcEnable": true
    },
    {
        "package" : "com.bluefletch.ems.support",
        "password": "d9b5f58f0b38198293971865a14074f59eba3e82595becbe86ae51f1d9f1f65e"
    },
    {
        "label": "Test Intent Receiver",
        "package": "com.bluefletch.ems.testintentreceiver",
        "intentExtras": {
            "url": "https://somewhere.com",
            "anExtra": "an Extra field",
            "boolean": true,
            "integer": 42,
            "replaceExample": "Can replace ${session.location}"
        }   
    },
    {
      "package": "com.google.android.apps.maps",
      "allowInMotionLock": true
    }

Web Shortcut Object

Available fields used to describe web shortcuts displayed on the Launcher home screen.

FieldDescription

label

string The name of the application to display (optional).

url

string A URL to navigate to.

icon

string Represents a icon to overvide the default application image. ie. /sdcard/DCIM/icons/logo.png (optional).

kiosk

boolean If set to true, will put launcher into Kiosk mode for this shortcut (optional).

nfcEnable

boolean If this Application is started by End User, and the value is "true", then enable NFC (if not on). False indicates do nothing with NFC. Valid values are "true" and "false", defaults to "false".

browser

string Set to the package name of the target browser to use for this shortcut. If not specified, the Launcher will open the URL in a Chrome Custom Tab.

browserOverrides

object If using the BF Browser, this is an object with the browser settings to be overriden for this specific shortcut. All of the settings described in the browser documentation page can be overriden in this section.

showUrl

boolean Determines if the url will be displayed to the user. Valid values are "true" and "false", defaults to browser settings. (optional) Note: this setting will be deprecated, use browserOverrides instead.

showTitle

boolean Determines if the webpage title is displayed to the user. Valid values are "true" and "false", defaults to browser settings. (optional) Note: this setting will be deprecated, use browserOverrides instead.

allowCookiePreview

boolean Determines if user can view the cookies for the current url. This is used for development purposes. Valid values are "true" and "false", defaults to browser settings. (optional) Note: this setting will be deprecated, use browserOverrides instead.

fixOrientation

boolean Determines if the view is fixed to portrait. Valid values are "true" and "false", defaults to browser settings. (optional) Note: this setting will be deprecated, use browserOverrides instead.

intentExtras

object If populated, these key-value pairs will be added to the launching intent as extras. The value data will be sent as strings, regardless of how the data type is specified in the configuration. The values do support Custom Intents Replacement Variables. Setting added in Launcher version 3.9.15.

password

string The SHA-256 hashed version of the password required to launch the shortcut.

allowInMotionLock

boolean If true, the application or web shortcut is allowed in motion lock. Web shortcuts that are allowed are listed at the bottom of the screen once motion lock engages. A maximum of three can be allowed. Default is false. Introduced in Launcher version 3.20.x.

Example:

{
    "label": "BlueFletch",
    "url": "https://bluefletch.com",
    "icon": "/sdcard/DCIM/icons/bluefletch_logo.png",
    "browser": "com.bluefletch.ems.browser",
    "browserOverrides": {
        "showUrl": false,
        "showTitle": true,
        "allowCookiePreview": false,
        "fixOrientation": true
    },
    "nfcEnable": true,
    "intentExtras": {
        "anExtra": "an Extra field",
        "boolean": true,
        "integer": 42,
        "replaceExample": "Can replace ${session.location}"
    },
    "password": "d9b5f58f0b38198293971865a14074f59eba3e82595becbe86ae51f1d9f1f65e"
},
{
  "label": "Drivers Stop List",
  "url": "https://company.com/drivers/list-of-stops",
  "browser": "com.bluefletch.ems.browser",
  "icon": "/sdcard/DCIM/icons/bluefletch_logo.png",
  "allowInMotionLock": true
}

Folder Object

Available fields used to describe folders on the Launcher home screen.

FieldDescription

label

string The name of the folder to display (required).

quickStartFolder

boolean Indicates whether or not this folder is a Quick Start application list; a Quick Start folder will have its icons pinned to the bottom of the launcher Home screen. Default is false. Available in Launcher v3.13.9 and later.

contents

array An array of application objects. Used in grouping applications into folders.

icon

string Represents an icon image file to override the default thumbnail, which is a preview of the apps, actions, and shortcuts within the folder. Image may be referenced by file path or asset.

password

string The SHA-256 hashed version of the password required to display the folder.

Example:

 {
        "label" : "Tools",
        "quickStartFolder": false,
        "password": "d9b5f58f0b38198293971865a14074f59eba3e82595becbe86ae51f1d9f1f65e",
        "contents":[
            {
                "package" : "com.bluefletch.ems.support"
            },
            {
                "package" : "com.symbol.datawedge"
            },
            {
                "label" : "BlueFletch",
                "url" : "https://bluefletch.com",
                "icon" : "/sdcard/DCIM/icons/bluefletch_logo.png"
            },
            {
                "label" : "Staging tools",
                "contents" : [
                    {
                        "package" : "com.symbol.tool.stagenow"
                    }
                ]
            }

        ]
    }

Action Object

Available fields used to describe a System Action to display on the Launcher home screen.

FieldDescription

action

string The system level action string to invoke. Example: android.settings.WIFI_SETTINGS or android.settings.BLUETOOTH_SETTINGS.

label

string The name to display (required).

icon

string Represents a icon to overvide the default application image. Ie. /sdcard/DCIM/icons/logo.png or a package name: com.android.settings (optional).

wifiSettingsEnabled

boolean If this Application is started by End User, and the value is "true", then enable editing within the Wifi Settings UI. False indicates do nothing with Wifi Settings UI. Valid values are "true" and "false", defaults to "false".

intentExtras

object If populated, these key-value pairs will be added to the launching intent as extras. The value data will be sent as strings, regardless of how the data type is specified in the configuration. The values do support Custom Intents Replacement Variables. Setting added in Launcher version 3.9.15.

password

string The SHA-256 hashed version of the password required to launch the action.

Note: BlueFletch supports the custom actions com.bluefletch.ems.RUN_XML and com.bluefletch.ems.AUDIO, as well as android.settings.WIFI_SETTINGS and android.settings.BLUETOOTH_SETTINGS. Android Developer documentation provides a list of Android Settings actions, although some actions may not currently be fully supported by BlueFletch.

Example:

{
    "label" : "Wifi Settings-ReadOnly",
    "action": "android.settings.WIFI_SETTINGS",
    "icon" : "com.android.settings"
}

Default Session

Default session used by the Launcher when no user is logged in.

FieldDescription

userId

string Defaulted userId value. Suggested to be blank.

userName

string Defaulted display within the User Name display. Suggested to be blank.

groups

string The defaulted Groups value to use for OpenZone. Default is *.

location

string The Site / Location to default the device.

Example:

 "defaultSession": {
        "userId": "",
        "userName": "",
        "groups": "*",
        "location": ""
    },

Theme

Available settings for 'theming' a device UI per an Organization's needs. Starting 3.0.x, you are able to define and customize separate wallpapers for the main and lock screens.

FieldDescription

enable

boolean To enable theme support. Default true.

logo

string A file location for a company specific logo. A URL is fine, but for better performance use a local file downloaded via MDM.

logoHeight

integer The height in pixels of the logo within the banner. Default is 100.

background

string A hex code for a company specific background color. Starting in 3.0.x, set to blank to use the device wallpaper as the background.

accentColor

string A hex code for a company specific accent color.

The following additional theme settings were introduced starting in version 3.0.x of the Launcher:

FieldDescription

darkTheme

boolean Set to false when using a light background/theme, as this will change all element text colors to black. If using dark wallpaper, set to true. Defaulted to true.

wallpaperImage

string name, local path or URL to use as the wallpaper for the Main screens. The following valid values can be used which are built-in with the Launcher: bubble, topology, messe or swirl.

duoToneWhite

string Colorize/tint the wallpaper using Duotone, this value is the hex value of the light halftone color of the image. Examples of Duotone images can be found here. Beginning 3.3.x, set to "" to keep the original color of the wallpaper.

duoToneBlack

string Colorize/tint the wallpaper using Duotone, this value is the hex value of the dark halftone color of the image. Examples of Duotone images can be found here. Beginning 3.3.x, set to "" to keep the original color of the wallpaper.

blurRadius

integer Blur the specified wallpaper image using this blur radius.

blurPasses

integer Use in conjunction with the blurRadius configuration setting, will apply a blur filter to the wallpaper this many times. If set to 0 the wallpaper will not apply any blur filters.

folderBackgroundColor

string A hex code for the background color of an open folder object. This value should comply with the darkTheme setting. For instance, choosing a light background color while enabling darkTheme would make text difficult to read.

badgeColor

string A hex code for the background color of the notification badges displayed on application icons. Available starting in Launcher 3.17.x.

searchIcon

string The file location of an image to be displayed for the Launcher search bar. The value can point to a file location of an image downloaded on the device or the asset defined for a file's URL. Available starting in Launcher 3.17.x.

Use the settings below to apply a separate theme to the Lock screen, starting in 3.0.x. If the following settings are omitted, the lock screen will use the same wallpaper as the main screen:

FieldDescription

wallpaperImage_lock

string name, local path or URL to use as the wallpaper for the Main screens. The following valid values can be used which are built-in with the Launcher: bubble, topology, messe or swirl.

duoToneWhite_lock

string Colorize/tint the wallpaper using Duotone, this value is the hex value of the light halftone color of the image. Examples of Duotone images can be found here. Beginning 3.3.x, set to "" to keep the original color of the wallpaper.

duoToneBlack_lock

string Colorize/tint the wallpaper using Duotone, this value is the hex value of the dark halftone color of the image. Examples of Duotone images can be found here. Beginning 3.3.x, set to "" to keep the original color of the wallpaper.

blurRadius_lock

integer Blur the specified wallpaper image using this blur radius.

blurPasses_lock

integer Use in conjunction with the blurRadius_lock configuration setting, will apply a blur filter to the wallpaper this many times. If set to 0 the wallpaper will not apply any blur filters.

Example:

"theme" : {
        "enable" : "true",
        "logo" : "/sdcard/Download/ems/bsb_bikes_logo.png",
        "darkTheme" : true,
        "wallpaperImage" : "messe",
        "duoToneWhite" : "#006497",
        "duoToneBlack" : "#002442",
        "blurRadius" : 5,
        "blurPasses" : 0,
        "folderBackgroundColor" : "#AAAAAA",
        "wallpaperImage_lock" : "topology",
        "duoToneWhite_lock" : "#006497",
        "duoToneBlack_lock" : "#002442",
        "blurRadius_lock" : 5,
        "blurPasses_lock" : 0

    }

Custom Fields

Allows display of values in the Launcher home screen retrieved from an external file.

FieldDescription

format

string The format of the string to display on the UI. name placeholders should be enclosed in braces and must match the corresponding name field.

source

object array An array of objects that define the source file, regular expression and field name to be parsed. If multiple pieces of information is being parsed from a file, create multiple instances of this object using the same file name but different regex patterns and field names.

Each source object is defined as follows:

FieldDescription

pathfile

string The full path and filename of the file to be parsed.

regex

string A Java regular expression string that will extract the information from the file. The regular expression should result in the information being returned on the first match group.

name

string The value retrieved by the regular expression will be placed in this field name. This is the field name that will be present in the format placeholder.

Example:

    ...
    "customField" : {
        "format" : "{Extension} - {Department}",
        "source" : [
            {
                "pathfile": "/sdcard/Download/extension_dept.txt",
                "regex": "Ext=(.*)",
                "name": "Extension"
            },
            {
                "pathfile": "/sdcard/Download/extension_dept.txt",
                "regex": "Dept=(.*)",
                "name": "Department"
            }
        ]
    },
    ...

Pattern Object

Represents configuration for associating search text with applications. If the search text matches the configured regex pattern, the application specified will be displayed, and could also specify the intent and extras that will be passed to the app when the search result is tapped.

On Zebra devices, the patterns are also used when Launcher detects a device hardware scan event.

FieldDescription

pattern

string A regular expression to match the entered search text or scanned text.

displayPrefix

string What to display in the search results for this pattern match.

package

string The package to invoke if user presses the search result.

extraKey

string The name of the extraKey to use if search result is pressed.

intent

string Placeholder for future use.

unrestricted

boolean If set, then pattern search will compare against any application installed on the device. Default false. Introduced in 3.19.16.

Example:

"patterns" : [
    {"pattern": "^[0-9]{12}$", "displayPrefix" : "Lookup", "package" : "com.bluefletch.acc.itemlookup", "intent" : "Intent", "extraKey" : "SEARCH_TEXT" },
    {"pattern": "^[0-9]{12}$", "displayPrefix" : "Lookup", "package" : "com.bluefletch.demoscanreceiver", "intent" : "Intent", "extraKey" : "SCAN_TEXT" },
    {"pattern": ".*", "displayPrefix" : "Open", "package" : "com.bluefletch.retail.iteminquiry", "intent" : "Intent", "extraKey" : "KEY" },
    {"pattern": "^[0-9]{10}$", "displayPrefix" : "Call", "package" : "com.android.dialer", "intent" : "Intent", "extraKey" : "KEY" },
    {"pattern": "^[0-9]{10}$", "displayPrefix" : "Call", "package" : "com.android.dialer", "intent" : "Intent", "extraKey" : "KEY" },
    {"pattern": "^[0-9]{12}$", "displayPrefix" : "Lookup", "package" : "com.bluefletch.demoscanreceiver", "intent" : "Intent", "extraKey" : "SCAN_TEXT" },
    {"pattern": "^(\\d{4})?$", "displayPrefix" : "Call", "package" : "com.android.dialer", "intent" : "Intent", "extraKey" : "KEY" },
    {"pattern": "^(\\d{4})?$", "displayPrefix" : "Call", "package" : "com.symbol.wfc.voice", "intent" : "Intent", "extraKey" : "KEY" }
  ]

This example shows a pattern that will start the BlueFletch Browser when Launcher receives a scan event, and that scan contains a URL with 'https://' and 'bluefletch.com'.


"patterns" : [
    ...
    {
        "pattern": "https?:\/\/.*.bluefletch.com",
        "displayPrefix": "Open",
        "package": "com.bluefletch.ems.browser",
        "intent": "Intent",
        "extraKey": "url",
        "unrestricted": true
    }
    ...
  ]

Secure Notifications

Settings for Custom Notifications support.

KeyDescription

enabled

boolean Enable/disable the secure notifications feature. Default is false (disabled).

enableHeadsUp

boolean Enable/disable the heads-up popup feature. Default is false (disabled).

headsUpTime

integer Time in milliseconds to display a high priority heads-up popup on the screen. Default is 3000 (3 seconds).

blacklist

array An array of packages to blacklist. Notifications from packages in this list will be suppressed. Default is no blacklisted notifications.

whitelist

array An array of packages to whitelist. If used, only packages that appear in this list will be allowed to display notifications. If the list is empty then no notifications will be shown. If this field is ommitted then all notifications will be presented unless they are specified in the blacklist.

bubbleColor

string Hex code for color of the notification bubble. Default is #FFFFFF (white). A reboot is required for a change to this value to apply to a device.

bubbleOffset

integer Horizontal position of bubble, in percentage points of screen width. Valid values are 0-100, with 0 being far left and 100 being far right. Default is 50. A reboot is required for a change to this value to apply to a device.

Example:

    "secureNotifications" : {
        "enabled": true,
        "enableHeadsUp": true,
        "headsUpTime": 2000,
        "whitelist": ["com.example.phone", "com.example.music"],
        "blacklist": ["com.example.browser"],
        "bubbleColor": "#8AFF8A",
        "bubbleOffset": 75
    }

External Site Info Finder

Settings when using a custom Site Location finder service. If both parameters are set, the Launcher will use this service to obtain the siteId instead of the built-in lookup system. See Automated Site Information Service for additional information.

FieldDescription

packageName

string The package name of the application that contains the custom service.

resourceId

string The fully qualified name of the Android service to be called e.g. 'com.bluefletch.services.CustomSiteService'.

Example:

  "externalSiteInfoFinder": {
    "packageName": "com.bluefletch.customservice",
    "serviceName": "com.bluefletch.customservice.CustomSiteFinder"
  }

External Manual Site Select

Settings when using a custom manual site select or overriding the current site information. This is used when the built-in manual site selection that depends on sitelist.csv won't be used.

FieldDescription

packageName

string The package name of the application that contains the custom service.

activityName

string The fully qualified name of the Android Activity to be called e.g. 'com.bluefletch.ems.auth.SiteSelectActivity'.

Example:

  "externalSiteInfoFinder": {
    "packageName": "com.bluefletch.ems.auth",
    "activityName": "com.bluefletch.ems.auth.SiteSelectActivity"
  }

Orientation Override

Settings that change the BlueFletch Launcher orientation based on the device model. By default the Launcher will be set to portrait if the display is less than 7 inches (measured diagonally) and will default to landscape if the screen is 7 inches or greater. This setting can be used to force the Launcher to use portrait on a tablet or vice versa.

The configuration is represented as a set of key/value pairs, with the model of the device being the key, and the value being the desired orientation.

FieldDescription

key

string The device model.

value

string The desired orientation, either 'portrait' or 'landscape'.

Example:

Shows how to set device model ET51 and TC700H to portrait mode.

  "orientationOverride": {
        "TC700H": "portrait",
        "ET51": "portrait"
  }

Assets Manager

Settings that specify assets that the BlueFletch Launcher should download and use for UI display processing. To reference the asset, use the format of 'assets:name'.

FieldDescription

key

string Asset name.

value

string URL to use to download the asset.

Example:

Shows that two images are being downloaded, and can be referenced as 'imageName' and 'anotherImage'.

  "assets": {
        "imageName": "https://somewhere.com/image.png",
        "anotherImage": "https://somewhere.com/image2.png"
  }

Usage within layouts:

    {
        "package": "com.google.android.music",
        "icon": "assets:anotherImage"
    },

auth_adal

ADAL IdP settings.

FieldDescription

authority

string Configured resource ID for this application.

resourceId

string Configured resource ID for this application.

clientId

string Configured Client ID for this application.

redirectUri

string Configured callback URL for this application.

claim_userId

string Passthrough field containing the userID (e.g. unique_name).

claim_username

string LDAP passthrough field containing the user's display name.

claim_groups

string LDAP passthrough field containing the groups (e.g. equivalent to MemberOf).

baseUrl

string The base url for the ADFS environment.

defaultDomain

string Optional, to pre-populate the username field with the domain prefix.

auth_okta

OKTA IdP Settings.

FieldDescription

okta_issuer_uri

string The configured Issuer URI for the identity provider.

okta_client_id

string The configured client ID for this application.

okta_redirect_uri

string The configured redirect callback URI for this application.

okta_scopes

string The scopes where this authentication applies.

auth_location_field

string An optional setting that tells authorization which field in the auth provider response contains Location information. Used in conjunction with auth_location_regex.

auth_location_regex

string A regular expression to extract the location value from the location field. Used in conjunction with auth_location_field.

auth_group_field

string An optional setting that tells authorization which field in the auth provider response contains Group information. Used in conjunction with auth_group_regex.

auth_group_regex

string A regular expression to match against the group information.

auth_group_regex_true

string If the regular expression auth_group_regex returns true (found a value), will use this group value.

auth_default_group

string A default group.

auth_role_field

string An optional setting that tells authorization which field in the auth provider response contains User ROLE information. Used in conjunction with auth_role_regex. Available AUTH 1.1.x.

auth_role_regex

string A regular expression to match against the role information.

auth_role_regex_true

string If the regular expression auth_role_regex returns true (found a value), will use this Role value.

auth_default_role

string A default user role.

Full Example

{
  "configVersion" : "example configuration",
  "group_inclusion" : {
    "MANAGER_ROLE" : ["Managers", "Associates", "*"],
    "Associates" : ["Associates", "*"],
    "*" : ["*"]
  },
  "layouts" : {
    "CPP" : [
      {  "package" : "com.symbol.wfc.pttpro" },
      {  "package": "com.bluefletch.ems.support" }
    ],
    "MPP" : [
      {  "package" : "com.symbol.wfc.pttpro" },
      {  "package": "com.bluefletch.ems.support" }
    ],
    "Managers":[
      {
        "label" : "Vision Settings",
        "package": "com.bluefletch.ems.vision",
        "activity": "PreferenceActivity"
      },
      {
        "label" : "Vision Training",
        "package": "com.bluefletch.ems.vision",
        "activity": "FaceTrainActivity"
      },
      {
        "package": "com.bluefletch.go"
      }
    ],
    "ADMIN":[
      {
        "package": "com.bluefletch.ems.support",
        "nfcEnable": true
      },
      {
        "package": "com.android.settings",
        "nfcEnable": true
      }
    ],
    "Associates":[
      {  "package" : "com.symbol.wfc.pttpro" },
      {
        "label" : "Vision Settings",
        "package": "com.bluefletch.ems.vision",
        "activity": "PreferenceActivity"
      },
      {
        "label" : "Vision Training",
        "package": "com.bluefletch.ems.vision",
        "activity": "FaceTrainActivity"
      },
      {
        "package": "com.bluefletch.ems.support",
        "label": "Support"
      },
      {
        "package": "com.android.calculator2"
      }
    ],
    "*": [
      {
        "package": "com.staylinked.AndroidClient"
      },
      {
        "package": "com.android.chrome"
      },
      {
        "package" : "com.google.android.gm"
      },
      {
        "package" : "com.google.android.calendar"
      },
      {
        "package" : "com.bluefletch.ems.testpermissions"
      },
      {
        "label" : "Yahoo News",
        "url" : "https://news.yahoo.com",
        "icon" : "/sdcard/DCIM/icons/news.png",
        "showUrl" : false,
        "showTitle" : false,
        "allowCookiePreview" : false,
        "fixOrientation" : false
      },
      {
        "package": "com.bluefletch.ems.support"
      },
      {
        "label" : "Tools Folder",
        "contents":[
          {
            "package":"com.bluefletch.ems.messaging"
          },
          {
            "package":"com.bluefletch.acc.themerapp"
          },
          {
            "package": "com.bluefletch.ems.tester"
          },
          {
            "package" : "com.bluefletch.ems.support",
            "label": "Strapper",
            "icon" : "/sdcard/DCIM/icons/soccer.jpeg"
          },
          {
            "package" : "com.symbol.datawedge",
            "label": "Wedge"
          },
          {
            "package" : "com.symbol.tool.stagenow"
          },
          {
              "label" : "WebSites",
              "contents":[
                {
                  "label" : "Google",
                  "url" : "https://google.com",
                  "icon" : "/sdcard/DCIM/icons/google.png",
                  "showUrl" : false,
                  "showTitle" : false,
                  "allowCookiePreview" : false,
                  "fixOrientation" : false
                },
                {
                  "label" : "Google",
                  "url" : "https://google.com",
                  "icon" : "/sdcard/DCIM/icons/google.png",
                  "showUrl" : false,
                  "showTitle" : false,
                  "allowCookiePreview" : false,
                  "fixOrientation" : false
                },{
                  "label" : "Yahoo News",
                  "url" : "https://news.yahoo.com",
                  "icon" : "/sdcard/DCIM/icons/news.png",
                  "showUrl" : false,
                  "showTitle" : false,
                  "allowCookiePreview" : false,
                  "fixOrientation" : false
                }
              ]
          }
        ]
      },
      {
        "label" : "Google",
        "url" : "https://google.com",
        "icon" : "/sdcard/DCIM/icons/google.png",
        "showUrl" : false,
        "showTitle" : false,
        "allowCookiePreview" : false,
        "fixOrientation" : false
      },
      {
        "label" : "One item",
        "contents":[
          {
            "label" : "Google",
            "url" : "https://google.com",
            "icon" : "/sdcard/DCIM/icons/google.png",
            "showUrl" : false,
            "showTitle" : false,
            "allowCookiePreview" : false,
            "fixOrientation" : false
          },
          {
            "package": "com.android.chrome"
          }
        ]
      },
      {
        "label" : "Two items",
        "contents":[
          {
            "label" : "Google",
            "url" : "https://google.com",
            "icon" : "/sdcard/DCIM/icons/google.png",
            "showUrl" : false,
            "showTitle" : false,
            "allowCookiePreview" : false,
            "fixOrientation" : false
          },
          {
            "package" : "com.bluefletch.ems.support"
          }
        ]
      },
      {
        "label" : "Quick Start Applications Folder",
        "quickStartFolder": true,
        "contents":[
          {
            "label" : "Google",
            "url" : "https://google.com",
            "icon" : "/sdcard/DCIM/icons/google.png",
            "showUrl" : false,
            "showTitle" : false,
            "allowCookiePreview" : false,
            "fixOrientation" : false
          },
          {
            "package" : "com.bluefletch.ems.support"
          },
          {
            "package" : "com.bluefletch.ems.deviceinformation"
          }
        ]
      }
    ]
  },
  "groups": {
    "Managers":[
      "com.bluefletch.(.*)",
      "com.bluefletch.go",
      "com.android.settings"
    ],
    "Associates":[
      "com.android.dialer",
      "com.android.contacts",
      "com.android.calendar",
      "com.android.email",
      "com.android.browser",
      "com.bluefletch.ems(.*)",
      "com.android.gallery3d",
      "com.bluefletch.demoscanreceiver"
    ],
    "*":[
      "(.*)",
      "com.bluefletch.ems.support",
      "com.bluefletch.acc.themerapp",
      "com.android.calculator2",
      "com.cisco.anyconnect.vpn.android.avf",
      "BlueFletch",
      "Auth",
      "All Symbol",
      "Heads Up"
    ]
  },
  "layoutSettings:" {
    "quickStartIconSize": "small"
  },
  "fullyHidden":[
    "com.bluefletch.ems.auth"
  ],
  "settings":{
    "activateSearchBar":true,
    "idleTimeInMinutes": 5,
    "maxSessionTimeInMinutes": 120,
    "requireAuthOnScreenOn" : true,
    "useFaceRecognition" : true,
    "adminPassword" : "",
    "enableNotifications" : true,
    "enableNotificationsAlwaysOn" : true,
    "brokerUrl" : "tcp://ems-notifications-staging.bluefletch.com:1883",
    "enableHeadsUpNotifications" : true,
    "headsUpTimeoutInSeconds" : 4,
    "receiveOfflineMessages" : true,
    "useEnhancedMessaging" : true,
    "muteNotificationOnCall" : true,
    "autoSubscribeWithSession" : true,
    "useAppEnabler" : false,
    "ldap_hostname" : "contoso.domain.local",
    "ldap_port" : 389,
    "ldap_domain" : "@contoso.local",
    "ldap_rootDN" : "DC=contoso,DC=local",
    "nfcLoginSupport" : true,
    "nfcDataTypes" : "data/com.bluefletch.ems.auth",
    "okta_client_id": "adfasdfa-6607-asdfasdf0137-b038-06391559b9e8132312",
    "okta_redirect_uri": "com.bluefletch.launcher:/callback",
    "okta_scopes" : "[\"openid\", \"profile\", \"name\", \"groups\", \"email\"]",
    "okta_issuer_uri": "https://openid-connect.onelogin.com/oidc",
    "auth_default_group" : "Associates",
    "auth_group_field" : "title",
    "auth_group_regex" : "(?i)leader$",
    "auth_group_regex_true" : "Managers",
    "auth_location_field" : "custom_fields.deptnum",
    "auth_location_regex" : "(\\d+)",
    "device_lost_hours" : 12,
    "vision_threshold" : 0.45,
    "vision_attempts" : 20,
    "turnOffNFC" : true,
    "turnOnAtLogin" : true,
    "lockInMotion" : true,
    "lockInMotionConfidence" : 50,
    "disableRecents" : false,
    "unsecuredDeviceTimeoutInSecs": 30,
    "unsecuredDeviceEffects": true,
    "includeUserApps": true,
    "authorizedAppStores": "com.android.vending"
  },
  "luggageTag": {
    "enable": true,
    "thresholdInMinutes": 30,
    "logo": "https://www.image.com/url/to/logo.png",
    "line1": "123 Blue Fletch Street",
    "line2": "Atlanta, GA 45678",
    "email": "help@bluefletch.com",
    "phoneNumber": "(855) 529-6349",
    "unlockPassword": "936A185CAAA266BB9CBE981E9E05CB78CD732B0B3280EB944412BB6F8F8F07AF",
    "alarmLoopInMinutes": 10
  },
  "approvedNetworks": [
    "office-wifi-1",
    "office-wifi-2",
  ],
  "keyboard": {
    "hapticFeedback" : "hapticClick",
    "bigButtonText" : false,
    "alphanumeric" : true,
    "keyPreview" : false,
    "allowToggle": true,
    "toggleLoggedIn": false
  },
  "browser" : {
    "showUrl" : false,
    "showTitle" : false,
    "allowCookiePreview" : false,
    "fixOrientation" : false
  },
  "defaultSession" : {
    "userId" : "",
    "userName" : "",
    "groups" : "*",
    "location" : "992"
  },
  "notifications" : [
    {
      "brokerId" : "deviceManager",
      "url": "tcp://ems-notifications-prd.bluefletch.com:1883",
      "name" : "Device ",
      "enableOrganizationGroup" : true,
      "useEnhancedMessaging" : true,
      "muteNotificationsOnCall" : true,
      "notificationAcquireWakelocks" : true,
      "receiveOfflineMessages" : true,
      "enableNotificationsAlwaysOn" : true,
      "enableHeadsUpNotifications" : true,
      "disableVolumeAdjustment" : true
    },{
      "brokerId" : "StoreTest",
      "url": "tcp://ems-notifications-prd.bluefletch.com:1883",
      "name" : "Store",
      "enableOrganizationGroup" : true,
      "useEnhancedMessaging" : true,
      "muteNotificationsOnCall" : true,
      "notificationAcquireWakelocks" : true,
      "receiveOfflineMessages" : true,
      "enableNotificationsAlwaysOn" : false,
      "enableHeadsUpNotifications" : true
    }
  ],
  "customField" : {
    "format" : "{Extension} - {Department}",
    "source" : [
        {
            "pathfile": "/sdcard/Download/extension_dept.txt",
            "regex": "Ext=(.*)",
            "name": "Extension"
        },
        {
            "pathfile": "/sdcard/Download/extension_dept.txt",
            "regex": "Dept=(.*)",
            "name": "Department"
        }
    ]
  },
  "patterns" : [
    {"pattern": "^[0-9]{12}$", "displayPrefix" : "Lookup", "package" : "com.bluefletch.acc.itemlookup", "intent" : "Intent", "extraKey" : "SEARCH_TEXT" },
    {"pattern": "^[0-9]{12}$", "displayPrefix" : "Lookup", "package" : "com.bluefletch.demoscanreceiver", "intent" : "Intent", "extraKey" : "SCAN_TEXT" },
    {"pattern": ".*", "displayPrefix" : "Open", "package" : "com.bluefletch.retail.iteminquiry", "intent" : "Intent", "extraKey" : "KEY" },
    {"pattern": "^[0-9]{10}$", "displayPrefix" : "Call", "package" : "com.android.dialer", "intent" : "Intent", "extraKey" : "KEY" },
    {"pattern": "^[0-9]{10}$", "displayPrefix" : "Call", "package" : "com.android.dialer", "intent" : "Intent", "extraKey" : "KEY" },
    {"pattern": "^[0-9]{12}$", "displayPrefix" : "Lookup", "package" : "com.bluefletch.demoscanreceiver", "intent" : "Intent", "extraKey" : "SCAN_TEXT" },
    {"pattern": "^(\\d{4})?$", "displayPrefix" : "Call", "package" : "com.android.dialer", "intent" : "Intent", "extraKey" : "KEY" }
  ],
  "extendedAttributes" : {
    "gateway_auth_url" : ""
  },
 "theme" : {
    "enable" : "true",
    "logo" : "/sdcard/Download/ems/bsb_bikes_logo.png",
    "darkTheme" : true,
    "wallpaperImage" : "messe",
    "duoToneWhite" : "#006497",
    "duoToneBlack" : "#002442",
    "blurRadius" : 5,
    "blurPasses" : 0,
    "folderBackgroundColor" : "#AAAAAA",
    "wallpaperImage_lock" : "topology",
    "duoToneWhite_lock" : "#006497",
    "duoToneBlack_lock" : "#002442",
    "blurRadius_lock" : 5,
    "blurPasses_lock" : 0
  },
  "altThemes": {
    "siteOne": {
        "darkTheme": true,
        "enable": true,
        "logo": "/sdcard/Download/ems/maingroupicon.png",
        "accentColor": "#3049CB",
        "wallpaperImage": "/sdcard/Download/ems/main.png"
      },
    "siteTwo": {
        "darkTheme": true,
        "enable": true,
        "logo": "/sdcard/Download/ems/siteTwo.png",
        "accentColor": "#343A20",
        "wallpaperImage": "/sdcard/Download/ems/siteTwo.png"
      }
  },
  "secureNotifications" : {
    "enabled": true,
    "enableHeadsUp": true,
    "headsUpTime": 2000,
    "whitelist": ["com.example.phone", "com.example.music"],
    "blacklist": ["com.example.browser"]
  },
  "emsSupportTool" : {
    "orgId": "asdf-asdf-asdf"
  },
  "protectedList": [
  ],
  "disablePackages": [
  ],
  "intents" : {
    "login" : [],
    "logout":[],
    "boot" : [],
    "uncradle": [],
    "cradle": [],
    "screenOn": []
  },
  "license" : "dkas;lsad;ladjl;asd;io3489043lkasdlk;dxvoipc oic kqw4k439-xvknzcxvoip4r934ket9",
  "orientationOverride": {
    "TC700H": "portrait",
    "ET51": "portrait"
  },
  "keyManagement": {
    "enabled": true,
    "refreshIntervalInSeconds": 1740
  }

}

Last updated