Camera Manager

EMDK For Android - 6.3

Overview

The CameraMgr controls access to camera(s) and other mechanisms on the device that are capable of capturing images. Many Zebra Android products are equipped with devices that can be used to take pictures, scan barcodes or otherwise capture or acquire data, documents and images. For secure environments, CameraMgr can be used to restrict picture-taking and document capture and eliminate potential security risks posed by cameras and non-camera devices.

Important: Any mechanism on a device that can be used to take pictures or otherwise capture images is treated as a camera by CameraMgr. For example, if a device is equipped with a CCD-based imager that is intended primarily to scan barcodes but also supports some means to take pictures, that imager's picture-taking capabilities can be disabled with the UseAllCameras (enable/disable) parameter. Its barcode scanning capabilities will remain operational if doing so does not expose the ability to take pictures. If such a device offers only the ability to scan barcodes, it would not be treated as a camera since it poses little risk to image security.

Notes:

  • Limited support for picture-taking using non-camera devices may be available on devices running Android L or higher.
  • Additional support for picture-taking using non-camera devices may become available in later Android versions.
  • Blocking some or all cameras also might inhibit barcode scanning via those cameras if barcode scanning would directly or indirectly expose the ability to take pictures.
  • Blocking some or all cameras also might inhibit use of SimulScan via those cameras since some or all functions of SimulScan might rely on or expose the ability to take pictures.
  • Blocking the imager on Android L devices disables SimulScan.

Main Functionality

  • Enable/disable the use of all cameras and image-capture devices
  • Enable/disable the front-facing camera
  • Enable/disable the rear-facing camera
  • Enable/disable the imager camera
  • Report which cameras and image-capture devices are enabled/disabled

All Cameras Enable/Disable

Used to enable or disable use of all cameras and other mechanisms classified as cameras on the device. Using this parameter to "Disable ALL Cameras" will prevent a device from taking pictures by any means, even if an application exists on the device to do so. Note: On some devices, disabling all cameras also might disable the SimulScan app and/or scanners and devices not explicitly listed as cameras and/or not intended for the purpose of taking pictures.

Limited support for picture-taking using non-camera devices may be available on devices running Android L or higher.

Important: This parameter controls all mechanisms on a device that CameraMgr classifies as cameras, even if the device has more cameras than can be controlled using individual CameraMgr parameters. For example, if a device is equipped with front- and rear-facing cameras and a side-facing imager that can capture documents, all three devices would be classified as cameras, and would therefore be enabled or disabled together using this parameter. In this case, the side-facing imager could never be controlled individually without first enabling all three "cameras" and then disabling the front- and rear-facing cameras using their respective parameters.

It's also important to note that enabling or disabling all cameras might override a prior such command by an individual camera app or might be overridden for individual cameras by subsequent commands issued by other apps using the CameraMgr.

Cameras and other imaging devices enabled or disabled previously by CameraMgr will remain in that state until explicitly commanded to do otherwise.

Parm Name: UseAllCameras

Option Name Description Requires
0 Control Individual Cameras This value (or the absence of this parm from the XML) causes no change to whether any of the device's cameras are individually enabled or disabled, only whether they CAN be enabled or disabled by a subsequent command from another parm. A zero or null value here permits the front- and rear-facing cameras to be controlled individually by their respective parms. Cameras and other imaging devices enabled or disabled previously by CameraMgr will remain in that state until explicitly commanded to do otherwise.

OSX: 3.5+

MX: 4.3+

1 Enable ALL Cameras Enables all cameras and devices classified as cameras, allowing any camera to take pictures or otherwise acquire documents or images if an application exists on the device to do so.

OSX: 3.5+

MX: 4.3+

2 Disable ALL Cameras Disables all cameras and devices classified as cameras, preventing the device from taking pictures or otherwise acquiring documents or images, even if an application exists on the device to do so.

OSX: 3.5+

MX: 4.3+

Front Camera Enable/Disable

Controls use of the front-facing camera on the device. If the device is not equipped with a front-facing camera, use of this parm will return an error in the Result XML document.

Shown if: Use All Cameras is set to "Control Individual Cameras"

Parm Name: UseFrontCamera

Option Name Description Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no changes to whether the front-facing camera can be used on the device; any previously selected setting will be retained.

OSX: 3.5+

MX: 4.3+

1 Enable Enables use of the front-facing camera on the device, allowing that camera to take pictures or otherwise acquire documents or images if an application exists on the device to do so.

OSX: 3.5+

MX: 4.3+

2 Disable Disables use of the front-facing camera on the device, preventing the device from taking pictures or otherwise acquiring documents or images, even if an application exists on the device to do so.

OSX: 3.5+

MX: 4.3+

Rear Camera Enable/Disable

Controls use of the rear-facing camera on the device. If the device is not equipped with a rear-facing camera, use of this parm will return an error in the Result XML document.

Shown if: Use All Cameras is set to "Control Individual Cameras"

Parm Name: UseRearCamera

Option Name Description Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no changes to whether the device's rear-facing camera can be used; any previously selected setting will be retained.

OSX: 3.5+

MX: 4.3+

1 Enable Enables use of the rear-facing camera on the device, allowing that camera to take pictures or otherwise acquire documents or images if an application exists on the device to do so.

OSX: 3.5+

MX: 4.3+

2 Disable Disables use of the rear-facing camera on the device, preventing the device from taking pictures or otherwise acquiring documents or images, even if an application exists on the device to do so.

OSX: 3.5+

MX: 4.3+

Imager Camera Enable/Disable

Controls whether the imager on the device, if so equipped, can be used to take pictures. If the device is not equipped with an imager or the ability to take pictures using the imager, use of this parm will return an error in the Result XML document.

Notes:

  • Limited support for picture-taking using non-camera devices may be available on devices running Android L or higher.
  • Blocking the imager on Android L devices disables SimulScan.

Shown if: Use All Cameras is set to "Control Individual Cameras"

Parm Name: UseImagerCamera

Option Name Description Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no changes to whether the device's imager can be used to take pictures; any previously selected setting will be retained.

OSX: 5.0+

MX: 6.0+

1 Enable Controls whether the imager on the device (if so equipped) can be used to take pictures.

OSX: 5.0+

MX: 6.0+

2 Disable Disables use of the imager on the device (if so equipped) for taking pictures. This allows scanning to continue while preventing the imager from taking pictures, even if an application exists on the device to do so.

OSX: 5.0+

MX: 6.0+

Examples

Enable all cameras:


<wap-provisioningdoc>
    <characteristic type="CameraMgr" version="4.3" >
        <parm name="UseAllCameras" value="1"/>
    </characteristic>
</wap-provisioningdoc>


Disable all cameras:


<wap-provisioningdoc>
    <characteristic type="CameraMgr" version="4.3" >
        <parm name="UseAllCameras" value="2"/>
    </characteristic>
</wap-provisioningdoc>


Enable the front-facing camera:


<wap-provisioningdoc>
    <characteristic type="CameraMgr" version="4.3" >
        <parm name="UseFrontCamera" value="1"/>
    </characteristic>
</wap-provisioningdoc>


Disable the rear-facing camera:


<wap-provisioningdoc>
    <characteristic type="CameraMgr" version="4.3" >
        <parm name="UseRearCamera" value="2"/>
    </characteristic>
</wap-provisioningdoc>


Disable the front-facing camera and enable the rear-facing camera:


<wap-provisioningdoc>
    <characteristic type="CameraMgr" version="4.3" >
        <parm name="UseFrontCamera" value="2"/>
        <parm name="UseRearCamera" value="1"/>
    </characteristic>
</wap-provisioningdoc>


Queries

Get status of "Use All Cameras" parameter:

Input


<wap-provisioningdoc>
    <characteristic type="CameraMgr" >
        <parm-query name="UseAllCameras"/>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="CameraMgr" version="4.3" >
        <parm name="UseAllCameras" value="1"/>
    </characteristic>
</wap-provisioningdoc>


Get status of "Use Front Camera" parameter:

Input


<wap-provisioningdoc>
    <characteristic type="CameraMgr" >
        <parm-query name="UseFrontCamera"/>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="CameraMgr" version="4.3" >
        <parm name="UseFrontCamera" value="1"/>
    </characteristic>
</wap-provisioningdoc>


Get status of "Use Rear Camera" parameter:

Input


<wap-provisioningdoc>
    <characteristic type="CameraMgr" >
        <parm-query name="UseRearCamera"/>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="CameraMgr" version="4.3" >
        <parm name="UseRearCamera" value="1"/>
    </characteristic>
</wap-provisioningdoc>