About EMDK For Android

EMDK For Android 6.8


EMDK for Android is an extension for the Android Studio IDE that provides developers with a comprehensive set of tools to easily create powerful line-of-business applications for Zebra Android devices. EMDK for Android includes class libraries, sample applications with source code, and all associated documentation to help applications take full advantage of the power of Zebra devices.

EMDK for Android also inserts exclusive Profile Manager technology within the the IDE, providing a GUI-based development tool for configuring Zebra devices. This allows developers to write fewer lines of code, produce fewer errors, and reduce overall development time and effort.


The following software must be installed prior to using the EMDK for Android.


  • Microsoft Windows 7 (32-bit and 64-bit) or Microsoft© Windows 8 (32-bit and 64-bit) or Microsoft© Windows 8.1 (32-bit and 64-bit)
  • Java Development Kit (JDK) v7u45 or higher
  • Android Studio v2.x or higher

Mac OS X:

  • Yosemite (10.10.x) | (64-bit) or El Capitan (10.11.x) | (64-bit)
  • Java for OS X 2014-10x or higher
  • Java Development Kit (JDK) v7u75 or higher


  • The appropriate Android SDK Platform package must be installed on the development machine in order to target the right EMDK APIs SDK add-on. For example, Android 6.0 (API 23) must be installed for targeting EMDK APIs (API 23) as Compile SDK Version in Android Studio.
  • For building EMDK samples, the Android SDK Build-tools rev.23.0.x or higher must be installed.
  • Prior to installing, all Android Studio sessions must be closed if already running.

Devices Supported

Mobile devices

  • ET5X - Lollipop, Marshmallow
  • MC18 - Lollipop
  • MC32N0 - Lollipop
  • MC33 - Nougat
  • MC40 - Lollipop
  • TC20 - Nougat
  • TC25 - Nougat
  • TC51 - Marshmallow, Nougat
  • TC56 - Marshmallow, Nougat
  • TC70 - Lollipop
  • TC70x - Marshmallow, Nougat
  • TC75 - Lollipop
  • TC75x - Marshmallow, Nougat
  • TC8000 - Lollipop
  • VC80x - Nougat
  • WT6000 - Lollipop

Scanners and imagers

  • RS507
  • RS6000
  • RS5000
  • RS4000
  • DS3678
  • DS3608

This version cannot target devices running KitKat.

New in v6.8

  • Supports compiling applications to Android API level 26 with new "EMDK APIs, Android 26, rev xx (API 26)" add-on

Enhanced Barcode Manager API:

  • Supports Multi-barcode decoding
  • New MULTI_BARCODE value in enum ScanMode enables simultaneous decoding of multiple barcodes
  • New MultiBarcodeParams class in ScannerConfig adds barcodeCount parameter to set the barcode count to be scanned
  • New PRESS_AND_SUSTAIN AimType avoids canceling a read by subsequently pressing the trigger button (TC20/TC25 devices only)

Enhanced SerialComm API:

  • flowControlMode under Serial Config takes RTS_CTS, XON_XOFF and NONE values

Enhanced Profile Manager DataCapture:

  • Supports Serial Input plug-in
  • Support Zebra DS-3608 scanner
  • Support for Multi-barcode decoding:
    • New Multi Barcode Scanning Mode option in Reader parameters enables simultaneous decoding of multiple barcodes
    • New Barcode count field under Multi-barcode parameters allows a barcode count to be set
  • Supports sending ENTER command as a string
  • Enhanced support for Inter-character delay
  • New PRESS_AND_SUSTAIN AimType avoids canceling a read by subsequently pressing the trigger button (TC20/TC25 devices only)

Support for MX 7.2 adds the following Setting Types and features:

  • Enhanced Display Manager CSP:
    • On VC80 devices, adds the ability to force the display to “Stay Awake” and remain on.
  • Enhanced Power Manager CSP:
    • Turn ON/OFF “Doze Mode” energy saving features on the device. When enabled, only specially designated apps can prevent the device from entering a low-power state to preserve battery life.
  • Enhanced Remote Scanner Manager CSP:
    • Supports RS-507 and DS-3608 scanners
  • Enhanced Settings Manager CSP:
    • Enable/Disable application notification control on devices running Android Nougat


  • Support for configuring DataWedge using EMDK Profile Manager is deprecated. Profile Manager capabilities categorized under Data Capture are still supported but will no longer be advanced. Zebra recommends using DataWedge intent-based APIs to configure DataWedge profiles going forward.

  • Support for ProfileConfig class has been deprecated. This class, which can be used to access profile data, remains supported but will no longer be advanced. Instead, Zebra recommends using the name-value pair function of Profile Manager or carefully modifying the Profile XML directly. Refer to the Clock Sample for information about modifying Profile XML data.

  • Support for the ContinuousRead class is deprecated. This class, which can be used to enable continuous scanning, is still supported but will no longer be advanced. Zebra recommends using the aimType, sameSymbolTimeout, differentSymbolTimeout reader parameters for the device camera, imager or laser.

  • Support for the picklist field is deprecated. This field, which is used for enabling the picklist mode, is still support but will ultimately be replaced by the picklistEx field.


Profile Manager

The EMDK's exclusive Profile Manager Technology is an additional advantage for developers giving you a GUI based development tool built on our open framework. This allows you to write fewer lines of code resulting in reduced development time, effort and errors. This innovative feature not only gives you easy access to critical functions such as bar code scanning and transaction processing via a magnetic stripe reader (MSR) but also functionality not available in Google's Android SDK.

Samples & Programmer's Guide

There are sample projects that are included as part of the EMDK For Android installation. You can import the project into your IDE and run on your device. Look at the Sample Guide for more details on using these samples. You can also reference the Programmers Guide for a complete walk-through of building your first EMDK For Android application.

Java APIs

The EMDK for Android offers access to the device's Barcode capabilities through traditional native Java Barcode APIs.