Get Started

DataWedge 11.3


DataWedge provides the capability for any application on Zebra devices to easily capture data from various input sources (such as barcode scanner, RFID and voice) and optionally manipulate the data as needed based on simple options or complex rules. DataWedge actions and settings are controlled using DataWedge profiles configured either from the UI or programmatically using Android intents. When an application activity is displayed in the foreground, DataWedge automatically detects which profile the app or activity is associated to and applies the configuration from the profile. There are 2 approaches to interacting with DataWedge:

  • No-Code - No coding is required. DataWedge captures the data and automatically delivers it to the application based on the configured profile. Create a profile through the DataWedge UI to control how the data is captured and processed. Associate the app/activity to the profile and set the output to Keystroke to deliver the captured data to the app when it is in the foreground.
  • DataWedge Integration - Develop data capture apps based on one of the following approaches:
    • Low-Code - Basic method to receive data from generic Android intents via broadcast receiver, service or activity without the need for finer control of scanning or data processing. Refer to basic intent sample app.
    • DataWedge APIs - Use intents to control DataWedge settings and specify how the data is captured, processed, and delivered to the app without concern of the underlying hardware.

Zebra strongly recommends the use of DataWedge for all applications that require barcode scanning. While Zebra will continue to support EMDK Barcode APIs, the efficiency and feature richness of intent-based interfaces make it a simpler alternative to app development than using EMDK Barcode APIs. Developing EMDK apps require a thorough knowledge of scanning APIs - designing and coding EMDK apps can be time consuming due to its higher level of difficulty. DataWedge offers a simpler interface, better API ease-of-use and flexibility. DataWedge data may be retrieved from any application regardless of the underlying application technology (e.g. Java, Xamarin, any cross-platform framework that supports intents). EMDK provides a subset of DataWedge features. See DataWedge vs EMDK Comparison table for more information.

Important: Control of barcode scanning hardware is exclusive. If an app uses EMDK for scanning, it takes priority over DataWedge and scanning still takes place. If this EMDK app does not relinquish control of the scanner, it prevents apps that rely on DataWedge from scanning. Therefore, it is important to understand how to take control of a device's scanner hardware and, if necessary, release it to other apps when scanning is complete.

Main Features

DataWedge provides the following primary functions and options:

Data Capture

Data Processing


Note: Availability and operation of DataWedge features vary by device and operating system, see Feature Matrix.

DataWedge Functionality

Profiles and Plugins form the basis of most DataWedge functionality. Profiles include all the information about how DataWedge should behave when providing data capture services for a particular application. Much of that information comes from Plugins, which determine how the data will be input, processed and output.

Each Profile generally contains four elements:

  • Input Plugin - determines how data should be acquired (e.g. barcode scanner)
  • Process Plugin (optional) - specifies how the acquired data should be manipulated
  • Output Plugin - controls the passing of data to an application
  • Associated Application/Activity - specifies the app/activity for the profile to be applied to

DataWedge profile - Each app that uses DataWedge is associated with a DataWedge profile, which contains options that determine how the data is to be acquired (input), processed (data formatting), and delivered to the receiving app (output). These options are referred to as plugins (e.g. barcode input plugin). DataWedge continually monitors the foreground application - when it detects a change to the foreground app, it activates the appropriate profile associated with the app, if one exists. If the app is not associated with any profile, Profile0 is the default generic profile that takes effect. A profile can be exported so the same DataWedge configurations can be deployed across multiple devices.

For example, there are two different apps that exist on a device that use DataWedge to capture data. Both apps send an Intent whenever data needs to be captured, the action of that Intent being different for each app. By creating two separate DataWedge profiles, each containing different settings for the Intent plugin, both apps can be used seemlessly to capture different types of data.

Create a Profile and Associate App with Profile - By associating an app with the profile, the profile settings are applied when the app comes to the foreground. Data capture input, processing, and output is controlled through the profile via Plugins.

Each Plugin provides further options for finer control:

  • Input plugins - specifies how the data is captured:

    • Barcode specifies the device scanning hardware, decoders, decoder parameters, reader parameters, and scan parameters applied on the captured data prior to sending the data for processing. The supported hardware can include the integrated built-in devices (such as 1D scanner, 2D scanner, and camera), or externally connected devices (such as Bluetooth SSI or USB SSI scanners).
    • Workflow captures data when executing advanced tasks from a workflow process. This includes automatically capturing text and converting it to digital data for delivery to any app in special use cases (reading license plates, vehicle identification numbers (VIN), tire identification numbers (TIN), utility meters and identification documents), or decoding the barcode from a captured image with the built-in imager.
    • MSR (magnetic stripe reader) - acquires data from an MSR card, such as an identity card, on supported hardware.
    • RFID (radio-frequency identification) - acquires data from an RFID tag with a built-in or external RFID reader.
    • Serial port - acquires data from a peripheral device connected via serial port to the host device.
    • Voice - acquires data via speech recognition. Configurations include: trigger voice capture by pressing the PTT button, send a tab/enter command, limit data to alpha or numeric characters, spoken data validation, and working offline.
  • Processing plugins - (optional) specifies how to format the captured data prior to passing it to the output plugin; most useful in the no-code approach:

    • Basic Data Formatting (BDF) - formats data with basic pre-defined options prior to passing it to the output plugin. Options available: add data prefix, add data suffix, send data to foreground app, send data in hex format, append TAB key, and append ENTER key. This can be useful when scanning data to automatically move to the next text field by appending a TAB key.
    • Advanced Data Formatting (ADF) - formats data based on custom rules with specific criteria prior to passing it to the output plugin. This can be useful in cases such as triggering an action to pad data with zeros only if the middle 3 digits of an acquired 9 digit Code 128 barcode matches the same 3 digits specified in the rule.
  • Output plugins – specifies how data is delivered:

    • Keystroke data acquired is sent to the associated application as a series of keystrokes. This can be used to add scanning capabilities to an app without adding any code. Furthermore, it is also fully configurable via the DataWedge Intent API.
    • Intent data acquired is programmatically sent to the associated app/activity using the Android intent mechanism. This is the recommended method for apps to securely receive data in a flexible and configurable manner. The app needs to register for the DataWedge intent to receive the captured data.
    • Internet Protocol (IP) data acquired is sent through a network to a host via specified IP address and port using TCP or UDP. This can be useful to scan data to a PC such as in healthcare environments.
  • Utilities - (optional) provides tools to aid in data capture:

    • Data Capture Plus (DCP) enables specific areas of the device screen to behave as a virtual scan trigger when tapped, simulating a hardware trigger press. It can be configured in full-screen mode or as a floating scan button placed on the right side only, left side only, or either side of the screen.
    • Enterprise Keyboard Configuration enables the use of custom Enterprise Keyboard layouts within an associated app without modifying the app. Uses a desktop tool, Enterprise Keyboard Designer, to generate the Enterprise Keyboard layout.

DataWedge Settings - provides configurations to general, non-profile related DataWedge options. It includes features such as ignore disabled profiles, disabled app list and import/export profile.

Auto Import provides the ability to automatically load pre-configured profiles or configuration files in DataWedge. This can be used for device remote deployment using tools such as third party Enterprise Mobility Management (EMM) systems. DataWedge monitors a particular folder for the profile or configuration file. If a profile or configuration file is found, it imports the file to replace any existing configuration or profile.

Mass Deployment - DataWedge profiles and settings can be deployed to multiple devices either manually or with an EMM (Enterprise Mobility Management) software. The exported config file or profile can be automatically imported when placed in the /enterprise/device/settings/datawedge/autoimport directory.

How Do I...?

Create a profile specifying the input, process, output, and associated app(s). Alternatively, use Profile0, the default generic profile that applies to any app that comes to the foreground that is not associated with a profile. See Profiles for more information.
  • Enable Barcode Input to capture the data. Specify the capture settings as needed.
  • Select an output method:
    • Enable Keystroke Output to collect the data and deliver it as a series of keystrokes, eliminating the need for any application coding.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
    • Enable Intent Output to collect data and pass it programmatically to an app using DataWedge intent APIs.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
    • Enable Internet Protocol (IP) Output to collect data and pass it to a specific IP address and port using TCP or UDP.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
  • Specify the scanning device through Scanner Selection.
  • Enable the desired barcode type, or decoder, to scan and specify decoder parameter options, if needed.
Select one of the data capture input methods, e.g. barcode, MSR, RFID, etc., to acquire data and follow the steps supplied for either Basic Data Formatting or Advanced Data Formatting.
See Deployment for manual or mass deployment.

See How Do I ... for more step-by-step procedures on how to perform common tasks in DataWedge to capture data.

Best Practices

See Best Practices.

Related information: