Bluetooth Manager

Note: To display only the features present on a particular device, select one or more filters from the SmartDocs bar below.

EMDK For Android - 7.3

Overview

The Bluetooth Manager (BluetoothMgr) controls whether a device can pair with other Bluetooth devices such as headsets, printers and computers that come into range, and whether the device can be "discoverable," which would enable other Bluetooth devices to initiate pairing requests with it.

Bluetooth is a short-range wireless technology operating in the 2.4 GHz ISM band that was originally intended as a replacement for serial communications cables. It has since been adopted as a standard for hands-free headsets, stereo audio, networking to PCs and connections for barcode scanners, medical equipment and other devices formerly using RS-232.

IMPORTANT: For some devices, the following Bluetooth Manager parameters require purchase of a Mobility DNA Enterprise License:

  • AllowDiscoverability
  • AllowPairing
  • AllowSilentPairing
  • SilentPairingAction
About MDNA licensing

Main Functionality

  • Enable/Disable
    • Bluetooth Pairing
    • Bluetooth Discoverability
    • Silent Pairing (no user confirmation)
    • Silent Pairing based on Class of Device (CoD)
    • Silent Pairing based on Upper Address Part (UAP)
    • Mandatory Identifier
  • Create Silent Pairing Rules
  • Use Bluetooth MAC address as a mandatory identifier
  • Set a PIN for a remote device

Zebra Bluetooth Settings app

Zebra devices running Android 8.x Oreo and later come with the Zebra Bluetooth Settings (ZBS) app preinstalled. When run on a device with Bluetooth enabled, this app scans discoverable devices in the vicinity and displays their Bluetooth name, MAC address, Upper Address Part (UAP) and Class of Device (CoD) information similar to the image shown below.

To expose Bluetooth info of nearby devices:
  1. Set the relevant device(s) as discoverable.
  2. Open the Zebra Bluetooth Settings app on a device.
  3. Tap the "refresh" icon to begin scan: ZBS is preinstalled on devices running Android 8.x Oreo and later.

  4. Collect Bluetooth information as needed.

Discoverability Enable/Disable

Controls whether the device can be put into "discoverable" mode by the device user. When in this mode, the device can be discovered by other Bluetooth devices, which could then attempt to pair with it. This parameter has no effect on the device's own ability to discover other devices, to initiate pairing requests with them, or to reconnect with devices it had paired with previously.

Note: For some devices, this feature requires purchase of a Mobility DNA Enterprise License.

Parm Name: AllowDiscoverability

Option Name Description Note Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no changes to the device's ability to be discoverable by other Bluetooth devices; any previously selected setting will be retained.

MX: 6.1+

Android API: 23+

1 Enable Enables the user to set the device as "discoverable" by other Bluetooth devices.

MX: 6.1+

Android API: 23+

2 Disable Prevents the user from setting the device as discoverable by other Bluetooth devices.

MX: 6.1+

Android API: 23+

Pairing Enable/Disable

Controls whether the device will be permitted to pair with newly discovered Bluetooth devices that come into range. The settings of this parameter do not effect existing device pairings.

Note: For some devices, this feature requires purchase of a Mobility DNA Enterprise License.

Parm Name: AllowPairing

Option Name Description Note Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no changes to the device's ability to pair with discovered Bluetooth devices; any previously selected setting will be retained.

MX: 5.1+

Android API: 22+

1 Enable Enables the device to pair with newly discovered Bluetooth devices.

MX: 5.1+

Android API: 22+

2 Disable Disables pairing with newly discovered Bluetooth devices.

MX: 5.1+

Android API: 22+

Silent Pairing Enable/Disable

Controls whether the device will be permitted to pair with remote Bluetooth devices without requiring user confirmation. This feature is not the same as auto-pairing; it simply removes the confirmation step after device pairing has been initiated by the device user. The settings of this parameter do not effect existing device pairings.

Note: For some devices, this feature requires purchase of a Mobility DNA Enterprise License.

Parm Name: AllowSilentPairing

Option Name Description Note Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no changes to the device's ability to pair with discovered Bluetooth devices; any previously selected setting will be retained.

MX: 7.0+

Android API: 24+

1 Enable Enables the device to pair with known devices without user confirmation.

MX: 7.0+

Android API: 24+

2 Disable Disables silent pairing with Bluetooth devices; requires confirmation for pairing.

MX: 7.0+

Android API: 24+

Silent Pairing Action

Used to administer the list of Silent Pairing Rules on the device. By default, Silent Pairing Rules are in place to allow some Zebra device models to pair without user confirmation (after pairing is initiated by the user). Note: Default pairing rules for the devices listed below match by device Name only. For improved security, Zebra recommends that default rules be replaced with rules matching by device Name, Class of Device, Upper Address Part and/or, if supported, remote Device PIN and/or Remote Device MAC.

  • DS2278
  • DS3578
  • DS3678
  • DS8178
  • DX30
  • HS3100
  • LI3678
  • PAR-TMD
  • RS507
  • RS5100*
  • RS6000

*Silent pairing with the RS5100 is supported on SDM660-platform devices running Android 8.x Oreo (and later) and 8956-platform devices with the Android 7.x N (or later) LifeGuard patch.

Note: For some devices, this feature requires purchase of a Mobility DNA Enterprise License.

Shown if: Allow Pairing and Allow Silent Pairing are BOTH set to "Enable"

Parm Name: SilentPairingAction

Option Name Description Note Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no changes to the device's ability to pair with discovered Bluetooth devices; any previously selected setting will be retained.

MX: 7.0+

Android API: 24+

1 Add Remote Device Rule Adds a rule to the list that applies to the remote device.

MX: 7.0+

Android API: 24+

2 Remove Remote Device Rule Removes the specified rule.

MX: 7.0+

Android API: 24+

3 Remove all Remote Device Rules Clears the list of devices previously specified rules for Silent Pairing, including the default rules.

MX: 7.0+

Android API: 24+

Silent Pairing Device Name

Used to enter the name of a Bluetooth device with which to allow device pairing without requiring user confirmation. Only the Name field is required to create a Silent Pairing Rule. Optionally, device Name can be combined with Class of Device and/or Upper Address Part (UAP) of the device's MAC address to create Silent Pairing Rules with more specificity than using the device Name alone.

Input value rules:

  • String from 1-255 characters containing Bluetooth device name. For example: "Zebra Printer_01"

Shown if: Allow Pairing and Allow Silent Pairing are BOTH set to "Enable"

Parm Name: SilentPairingName

Requires:

  • MX: 7.0+
  • Android API: 24+

Silent Pairing Class of Device

Used to enter the Class of Device (CoD) of a Bluetooth device with which to allow device pairing without requiring user confirmation. Once a Bluetooth device is discovered, its Class can be seen in the Bluetooth Settings activity. Can be combined with Silent Pairing Name and (optionally) the Upper Address Part (UAP) of the device's MAC address to create a Silent Pairing Rule.

Use the Zebra Bluetooth Settings app to expose CoD and other Bluetooth device information.

Input value rules:

  • String representing the Bluetooth Class of Device. For example: "002900"

For more information:

Shown if: Allow Pairing and Allow Silent Pairing are BOTH set to "Enable"

Parm Name: SilentPairingCoD

Requires:

  • MX: 7.0+
  • Android API: 24+

Silent Pairing UAP

Used to enter the Upper Address Part (UAP) of the remote Bluetooth device's MAC address with which to allow the target device to pair without requiring user confirmation. The UAP is generally the first three bytes of the Bluetooth MAC address. Can be combined with Silent Pairing Name and (optionally) a Class of Device (CoD) to create a complete Silent Pairing Rule.

Use the Zebra Bluetooth Settings app to expose UAP and other Bluetooth device information.

Input value rules:

  • A hexadecimal string representing the first three (3) bytes of the Bluetooth MAC address. For example: "0A:1B:2C"

Shown if: Allow Pairing and Allow Silent Pairing are BOTH set to "Enable"

Parm Name: SilentPairingUAP

Requires:

  • MX: 7.0+
  • Android API: 24+

Mandatory Identifier

Controls which Bluetooth parameter is used as the Mandatory Identifier for the device.

See the Examples section for samples of parameter usage.

Note: On devices running versions prior to Android 9 Pie, only the Bluetooth device name can be used.

Shown if: Silent Pairing Action is "Add Remote Device Rule" OR "Remove Remote Device Rule"

Parm Name: MandatoryIdentifier

Option Name Description Note Requires
0 Bluetooth MAC Address Uses the Bluetooth MAC address as the device mandatory identifier.

MX: 9.3+

Android API: 28+

1 Bluetooth Device Name Uses the Bluetooth device name as the device mandatory identifier.

MX: 9.3+

Remote Device MAC

Used to enter the Bluetooth MAC address for identifying the device. NOTE: Only the MAC address is required to create a Silent Pairing Rule.

Input value rules:

  • String of exactly 17 characters in the format: "XX:XX:XX:XX:XX:XX"

Shown if: Mandatory Identifier is "Bluetooth MAC Address"

Parm Name: RemoteDeviceMAC

Requires:

  • MX: 9.3+
  • Android API: 28+

Remote Device PIN

Used to enter a PIN for the remote device. Zebra recommends setting a PIN of at least four (4) digits for optimum security.

Input value rules

  • String from 1-16 numerals

Parm Name: RemoteDevicePIN

Requires:

  • MX: 9.3+
  • Android API: 28+

Examples

Set Rule with Mandatory Identifier Bluetooth MAC

Add a silent pairing rule with a PIN when the Mandatory Identifier is Bluetooth MAC address:


<wap-provisioningdoc>
    <characteristic type="BluetoothMgr" version="10.0" >
        <parm name="AllowPairing" value="1"/>
        <parm name="AllowDiscoverability" value="1"/>
        <parm name="AllowSilentPairing" value="1"/>
        <parm name="SilentPairingAction" value="1"/>
        <parm name="MandatoryIdentifier" value="0"/>
    <characteristic type="SilentPairingDeviceDetails">
        <parm name="RemoteDeviceMAC" value="12:AB:34:CD:56:EF"/>
        <parm name="RemoteDevicePIN" value="12345"/>
    </characteristic>
    </characteristic>
</wap-provisioningdoc>

Set Rule with Mandatory Identifier Name

Add a silent pairing rule with a PIN when the Mandatory Identifier is Name:


<wap-provisioningdoc>
    <characteristic type="BluetoothMgr" version="10.0" >
        <parm name="AllowPairing" value="1"/>
        <parm name="AllowDiscoverability" value="1"/>
        <parm name="AllowSilentPairing" value="1"/>
        <parm name="SilentPairingAction" value="1"/>
        <parm name="MandatoryIdentifier" value="1"/>
    <characteristic type="SilentPairingDeviceDetails">
        <parm name="SilentPairingName" value="ZQ320"/>
        <parm name="RemoteDevicePIN" value="0000"/>
    </characteristic>
    </characteristic>
</wap-provisioningdoc>

Allow New Pairing

Input


<wap-provisioningdoc>
    <characteristic type="BluetoothMgr" version="5.0">
        <parm name="AllowPairing" value="1"/>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="BluetoothMgr" version="5.0">
        <parm name="AllowPairing" value="1"/>
    </characteristic>
</wap-provisioningdoc>

If the operation was successful, the Result XML (output) will be identical to the input XML, as above.

Prevent New Pairing

Input


<wap-provisioningdoc>
    <characteristic type="BluetoothMgr" version="5.0">
        <parm name="AllowPairing" value="2"/>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="BluetoothMgr" version="5.0">
        <parm name="AllowPairing" value="2"/>
    </characteristic>
</wap-provisioningdoc>

If the operation was successful, the Result XML (output) will be identical to the input XML, as above.

Query Silent Pairing State

Input


<wap-provisioningdoc>
<characteristic type="BluetoothMgr">
    <parm-query name="AllowSilentPairing"/>
</characteristic>
</wap-provisioningdoc>

Output (Allow Silent Pairing = "1" and is Enabled)


<wap-provisioningdoc>
    <characteristic type="BluetoothMgr" version="7.1">
        <parm name="AllowSilentPairing" value="1"/>
    </characteristic>
</wap-provisioningdoc>

Set Silent Pairing Rule with Name, CoD, UAP

    
    <wap-provisioningdoc>
        <characteristic type="BluetoothMgr" version="7.0" >
            <parm name="AllowPairing" value="1"/>
            <parm name="AllowDiscoverability" value="1"/>
            <parm name="AllowSilentPairing" value="1"/>
            <parm name="SilentPairingAction" value="1"/>
        <characteristic type="SilentPairingDeviceDetails">
            <parm name="SilentPairingName" value="TC51"/>
            <parm name="SilentPairingCoD" value="524"/>
            <parm name="SilentPairingUAP" value="40:83:DE"/>
        </characteristic>
        </characteristic>
    </wap-provisioningdoc>

Remove all devices from Silent Pairing Rules list

    
    <wap-provisioningdoc>
    <characteristic type="BluetoothMgr">
        <parm name="SilentPairingAction" value="3"/>
    </characteristic>
    </wap-provisioningdoc>

Restore default rules to Silent Pairing Rules list

    
    <wap-provisioningdoc>
    <characteristic type="BluetoothMgr">
        <parm name="SilentPairingAction" value="1"/>
        <characteristic type="SilentPairingDeviceDetails">
            <parm name="SilentPairingName" value="DS3578"/>
        </characteristic>
    </characteristic>
    <characteristic type="BluetoothMgr">
        <parm name="SilentPairingAction" value="1"/>
        <characteristic type="SilentPairingDeviceDetails">
            <parm name="SilentPairingName" value="DS3678"/>
        </characteristic>
    </characteristic>
    <characteristic type="BluetoothMgr">
        <parm name="SilentPairingAction" value="1"/>
        <characteristic type="SilentPairingDeviceDetails">
            <parm name="SilentPairingName" value="RS6000"/>
        </characteristic>
    </characteristic>
    <characteristic type="BluetoothMgr">
        <parm name="SilentPairingAction" value="1"/>
        <characteristic type="SilentPairingDeviceDetails">
            <parm name="SilentPairingName" value="RS507"/>
        </characteristic>
    </characteristic>
    <characteristic type="BluetoothMgr">
        <parm name="SilentPairingAction" value="1"/>
        <characteristic type="SilentPairingDeviceDetails">
            <parm name="SilentPairingName" value="HS3100"/>
        </characteristic>
    </characteristic>
    <characteristic type="BluetoothMgr">
        <parm name="SilentPairingAction" value="1"/>
        <characteristic type="SilentPairingDeviceDetails">
            <parm name="SilentPairingName" value="DX30"/>
        </characteristic>
    </characteristic>
    <characteristic type="BluetoothMgr">
        <parm name="SilentPairingAction" value="1"/>
        <characteristic type="SilentPairingDeviceDetails">
            <parm name="SilentPairingName" value="PAR-TMD"/>
        </characteristic>
    </characteristic>
    <characteristic type="BluetoothMgr">
        <parm name="SilentPairingAction" value="1"/>
        <characteristic type="SilentPairingDeviceDetails">
            <parm name="SilentPairingName" value="DS8178"/>
        </characteristic>
    </characteristic>
    <characteristic type="BluetoothMgr">
        <parm name="SilentPairingAction" value="1"/>
        <characteristic type="SilentPairingDeviceDetails">
            <parm name="SilentPairingName" value="LI3678"/>
        </characteristic>
    </characteristic>
    <characteristic type="BluetoothMgr">
        <parm name="SilentPairingAction" value="1"/>
        <characteristic type="SilentPairingDeviceDetails">
            <parm name="SilentPairingName" value="DS2278"/>
        </characteristic>
    </characteristic>
    </wap-provisioningdoc>