SET_CONFIG
Introduced in DataWedge 6.4.
Used to create, update or replace a DataWedge Profile and its settings. In DataWedge 6.6 and higher, this API also can be used to configure multiple Plug-ins with a single intent action. Beginning with DataWedge 6.7, the behavior of inter-character delay is enhanced. See the Keystroke Output guide for more information.
This API implements nested bundles, which contain multiple configuration parameters in a single data field.
To create a Profile without configuring its settings parameters, see CREATE_PROFILE.
Function Prototype
Intent i = new Intent();
i.setAction("com.symbol.datawedge.api.ACTION");
i.putExtra("com.symbol.datawedge.api.SET_CONFIG", <mainbundle>);
Parameters
ACTION [String]: "com.symbol.datawedge.api.ACTION"
EXTRA_DATA [String]: "com.symbol.datawedge.api.SET_CONFIG"
BUNDLE: <mainbundle> (see parameters below)
MAIN BUNDLE
The main SET_CONFIG
bundle includes the following properties:
- PROFILE_NAME [String]: The name of the Profile on which to perform action(s)
- CONFIG_MODE [String]: (Default=OVERWRITE)
- CREATE_IF_NOT_EXIST: Creates the Profile if string in PROFILE_NAME is not present on device
- OVERWRITE: If Profile exists, resets all options to default, then configures specified settings
- UPDATE: Updates only specified settings
- PROFILE_ENABLED [String]: Optional; Controls whether to enable (true) or disable (false) a Profile (default=true). If not specified, no change is made to the Profile state.
- PLUGIN_CONFIG [Bundle[ ]]: A bundle array (nested within the main bundle) that contains settings of each Plug-in
- APP_LIST [Array]: List of applications and/or activities to associate with the Profile
PLUGIN_CONFIG BUNDLE
The PLUGIN_CONFIG bundle is configured using the following properties:
RESET_CONFIG [String]: Optional
- True (Default) – Clear any existing configuration and create a new configuration with the specified parameter values
- False – Update the existing values and add values not already in the configuration
PLUGIN_NAME [String]: Name of the Plug-in to configure. See tables below for PARAM_LIST
values.
- BARCODE input
- SERIAL input
- INTENT output
- KEYSTROKE output
- BDF (basic data formatting) processing
Notes:
- Plug-in names are case sensitive.
- For DataWedge 6.5 and below, each intent involving a Plug-in requires a separate intent Action.
PARAM_LIST [Bundle]: A parameter list bundle nested within the PLUGIN_CONFIG
bundle. Includes the list of parameters to be updated under the specified Plug-in. Setting an empty string in any parameter value resets that parameter to its default setting.
A visual representation of nested SET_CONFIG bundles. See example code.
PARAM_LIST BUNDLE
The PARAM_LIST
bundle is configured by specifying the parameter name and value from the table below. Applies to parameters matching the PLUGIN_NAME
specified in PLUGIN_CONFIG
bundle.
BARCODE – takes a value from the Scanner Input Parameters table below; specify decoder and other input settings as
EXTRA_DATA
in thePARAM_LIST
nested bundle.scanner_selection_by_identifier
[string]- takes a value from the list of Scanner Identifiers below.
SERIAL - takes values as indicated below:
serial_port_id
[string] - 0–n (must be a valid port index)serial_input_enabled
[string] - true/falseserial_baudrate
[string] - 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800 or 921600serial_databits
[string] - 7 or 8serial_parity
[string] - NONE, ODD, EVEN, MARK or SPACEserial_stopbits
[string] - 1 or 2serial_flow
[string] - FLOW_NONE, FLOW_RTS_CTS or FLOW_XON_XOFF
INTENT - takes values as indicated below:
intent_output_enabled
[string]- true/falseintent_action
[string] - exact name of the actionintent_category
[string] - exact name of the categoryintent_delivery
[string]:- 0 - Start Activity
- 1 - Start Service
- 2 - Broadcast
KEYSTROKE - takes a value from the Keystroke Output Parameters table below; specify output settings as
EXTRA_DATA
in thePARAM_LIST
nested bundle.BDF - Applies Basic Data Formatting rules to the acquired data. Takes values:
bdf_enabled
[string]- true/falsebdf_prefix
[string]- prepend acquired databdf_suffix
[string]- append acquired databdf_send_data
[string]- true/falsebdf_send_hex
[string]- true/falsebdf_send_tab
[string]- true/falsebdf_send_enter
[string]- true/false
APP_LIST
An array of bundles that contains a set of PACKAGE_NAMES
and an ACTIVITY_LIST
to be associated with the Profile.
APP_LIST BUNDLE
Contains the following properties:
PACKAGE_NAME [String]: ex: "com.symbol.emdk.barcodesample1" or a wildcard (*) character
ACTIVITY_LIST [List]: A list of activities for the PACKAGE_NAME
. Wildcard (*) character also supported.
Scanner Identifiers
The scanner identifier (introduced in DataWedge 6.5) permits scanners to be identified by a friendly name rather than an index number.
SCANNER_IDENTIFIER [String]: in each scanner info bundle for each scanner supported in the device. Both parameters are supported in DataWedge and higher; the scanner identifier value takes precedence if an index also is referenced in the code.
Possible values:
- AUTO - Automatic scanner selection
- INTERNAL_IMAGER - Built-in imager scanner
- INTERNAL_LASER - Built-in laser scanner
- INTERNAL_CAMERA - Built-in camera scanner
- SERIAL_SSI - Pluggable Z-back scanner for ET50/ET55
- BLUETOOTH_SSI - RS507 Bluetooth scanner
- BLUETOOTH_RS6000 - RS6000 Bluetooth scanner
- BLUETOOTH_DS3678 - DS3678 Bluetooth scanner
- PLUGABLE_SSI - Serial SSI scanner RS429 (for use with WT6000)
- PLUGABLE_SSI_RS5000 - Serial SSI scanner RS5000 (for use with WT6000)
- USB_SSI_DS3608 - DS3608 pluggable USB scanner
Result Codes
DataWedge returns the following error codes if the app includes the intent extras RECEIVE_RESULT
and COMMAND_IDENTIFIER
to enable the app to get results using the DataWedge result intent mechanism. See Example, below.
- PLUGIN_NOT_SUPPORTED - An attempt was made to configure a plug-in that is not supported by DataWedge intent APIs
- BUNDLE_EMPTY - The bundle contains no data
- PROFILE_NAME_EMPTY - An attempt was made to configure a Profile name with no data
- PROFILE_NOT_FOUND - An attempt was made to perform an operation on a Profile that does not exist
- PLUGIN_BUNDLE_INVALID - A passed plug-in parameter bundle is empty or contains insufficient information
- PARAMETER_INVALID - The passed parameters were empty, null or invalid
- APP_ALREADY_ASSOCIATED - An attempt was made to associate an app that was already associated with another Profile
- OPERATION_NOT_ALLOWED - An attempt was made to rename or delete a protected Profile or to associate an app with Profile0
Also see the Result Codes guide for more information.
Return Values
Error and debug messages are logged to the Android logging system, which can be viewed and filtered by the logcat command. Use logcat from an ADB shell to view the log messages:
$ adb logcat -s DWAPI
Error messages are logged for invalid actions and parameters
Example Code
Nested bundles
// MAIN BUNDLE PROPERTIES
Bundle bMain = new Bundle();
bMain.putString("PROFILE_NAME","Profile12"); // <- "Profile12" is a bundle
bMain.putString("PROFILE_ENABLED","true"); // <- that will be enabled
bMain.putString("CONFIG_MODE","CREATE_IF_NOT_EXIST"); // <- or created if necessary.
// PLUGIN_CONFIG BUNDLE PROPERTIES
Bundle bConfig = new Bundle();
bConfig.putString("PLUGIN_NAME","BARCODE");
bConfig.putString("RESET_CONFIG","true");
// PARAM_LIST BUNDLE PROPERTIES
Bundle bParams = new Bundle();
bParams.putString("scanner_selection","auto");
bParams.putString("scanner_input_enabled","true");
//
// NOTE: The "scanner_selection" parameter (above) supports "auto" selection
// --OR-- the assignment of a scanner device index, which is obtained by
// using the ENUMERATE_SCANNERS API.
//
// Syntax for scanner index:
//
// Bundle bParams = new Bundle();
// diff--> bParams.putString("current-device-id","0");
// bParams.putString("scanner_input_enabled","true");
//
//
// NEST THE BUNDLE "bParams" WITHIN THE BUNDLE "bConfig"
bConfig.putBundle("PARAM_LIST", bParams);
// THEN NEST THE "bConfig" BUNDLE WITHIN THE MAIN BUNDLE "bMain"
bMain.putBundle("PLUGIN_CONFIG", bConfig);
// CREATE APP_LIST BUNDLES (apps and/or activities to be associated with the Profile)
Bundle bundleApp1 = new Bundle();
bundleApp1.putString("PACKAGE_NAME","com.symbol.emdk.simulscansample1");
bundleApp1.putStringArray("ACTIVITY_LIST", new String[]{
"com.symbol.emdk.simulscansample1.DeviceControl",
"com.symbol.emdk.simulscansample1.MainActivity",
"com.symbol.emdk.simulscansample1.ResultsActivity.*",
"com.symbol.emdk.simulscansample1.ResultsActivity2",
"com.symbol.emdk.simulscansample1.SettingsFragment1"});
Bundle bundleApp2 = new Bundle();
bundleApp2.putString("PACKAGE_NAME","com.example.intents.datawedgeintent");
bundleApp2.putStringArray("ACTIVITY_LIST", new String[]{
"com.example.intents.datawedgeintent.DeviceControl",
"com.example.intents.datawedgeintent.MainActivity",
"com.example.intents.datawedgeintent.ResultsActivity",
"com.example.intents.datawedgeintent.SettingsFragment1"});
Bundle bundleApp3 = new Bundle();
bundleApp3.putString("PACKAGE_NAME","*");
bundleApp3.putStringArray("ACTIVITY_LIST", new String[]{"*"});
Bundle bundleApp4 = new Bundle();
bundleApp4.putString("PACKAGE_NAME","com.symbol.myzebraapp");
bundleApp4.putStringArray("ACTIVITY_LIST", new String[]{"*"});
// NEXT APP_LIST BUNDLE(S) INTO THE MAIN BUNDLE
bMain.putParcelableArray("APP_LIST", new Bundle[]{
bundleApp1
,bundleApp2
,bundleApp3
,bundleApp4
});
Intent i = new Intent();
i.setAction("com.symbol.datawedge.api.ACTION");
i.putExtra("com.symbol.datawedge.api.SET_CONFIG", bMain);
this.sendBroadcast(i);
Set Serial Input Configuration
//
// Port 1 Configuration [Start]
//
Bundle bPort1 = new Bundle();
bPort1.putString("serial_port_id", "0"); //Supported Values: 0,1
bPort1.putString("serial_input_enabled", "true"); // Supported Values: true, false
bPort1.putString("serial_baudrate", "1200"); // Supported Values (some): 300, 1200, 2400, 4800, 19200, and more
bPort1.putString("serial_databits", "8"); //Supported Values: 8, 7
bPort1.putString("serial_parity", "ODD"); //Supported Values: NONE, ODD, EVEN, MARK, SPACE
bPort1.putString("serial_stopbits", "1"); //Supported Values: 1, 2
bPort1.putString("serial_flow", "FLOW_RTS_CTS"); //Supported Values: FLOW_NONE, FLOW_RTS_CTS, FLOW_DSR_DTR, FLOW_XON_XOFF
//
// Port 1 Configuration [End]
//
// Port 2 Configuration [Start]
//
Bundle bPort2 = new Bundle();
bPort2.putString("serial_port_id", "1");
bPort2.putString("serial_input_enabled", "true");
bPort2.putString("serial_baudrate", "300");
bPort2.putString("serial_databits", "7");
//bPort2.putString("abc", "123");
bPort2.putString("serial_stopbits", "2");
bPort2.putString("serial_flow", "FLOW_DSR_DTR");
bPort2.putString("serial_parity", "EVEN");
//
// Port 2 Configuration [End]
//
Bundle bConfig = new Bundle();
bConfig.putString("RESET_CONFIG", "false");
bConfig.putString("PLUGIN_NAME", "SERIAL");
bConfig.putParcelableArray("DEVICE_LIST", new Bundle[]{
bPort1, bPort2
});
Bundle bMain = new Bundle();
bMain.putString("PROFILE_NAME", "Profile0 (default)");
bMain.putString("CONFIG_MODE", "UPDATE");
bMain.putBundle("PLUGIN_CONFIG", bConfig);
Intent i = new Intent();
i.setAction("com.symbol.datawedge.api.ACTION");
i.putExtra("com.symbol.datawedge.api.SET_CONFIG", bMain);
i.putExtra("SEND_RESULT", "true");
i.putExtra("com.symbol.datawedge.api.RESULT_CATEGORY", DEFAULT_CATEGORY);
i.putExtra("COMMAND_IDENTIFIER", "DW_SERIAL_COMMAND");
this.sendBroadcast(i);
Set KEYSTROKE Output
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
registerReceivers();
}
@Override
protected void onResume() {
super.onResume();
setKeystrokeOutputPluginConfiguration();
}
private void registerReceivers() {
IntentFilter filter = new IntentFilter();
filter.addAction("com.symbol.datawedge.api.RESULT_ACTION");
filter.addCategory("android.intent.category.DEFAULT");
registerReceiver(datawedgeKeystrokeNIntentStatusBR, filter);
}
private BroadcastReceiver datawedgeKeystrokeNIntentStatusBR = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String command = intent.getStringExtra("COMMAND").equals("") ? "EMPTY" : intent.getStringExtra("COMMAND");
String commandIdentifier = intent.getStringExtra("COMMAND_IDENTIFIER").equals("") ? "EMPTY" : intent.getStringExtra("COMMAND_IDENTIFIER");
String result = intent.getStringExtra("RESULT").equals("") ? "EMPTY" : intent.getStringExtra("RESULT");
Bundle bundle;
String resultInfo = "";
if (intent.hasExtra("RESULT_INFO")) {
bundle = intent.getBundleExtra("RESULT_INFO");
Set<String> keys = bundle.keySet();
for (String key : keys) {
resultInfo += key + ": " + bundle.getString(key) + "\n";
}
}
String text="\n"+"Command: " + command + "\n" +
"Result: " + result + "\n" +
"Result Info: " + resultInfo + "\n" +
"CID: " + commandIdentifier;
Log.d("TAG”,text);
}
};
public void setKeystrokeOutputPluginConfiguration() {
Bundle configBundle = new Bundle();
configBundle.putString("PROFILE_NAME","UserProfile");
configBundle.putString("PROFILE_ENABLED","true");
configBundle.putString("CONFIG_MODE","CREATE_IF_NOT_EXIST");
Bundle bConfig = new Bundle();
bConfig.putString("PLUGIN_NAME", "KEYSTROKE");
Bundle bParams = new Bundle();
bParams.putString("keystroke_output_enabled","true");
bParams.putString("keystroke_action_char","9"); // 0, 9 , 10, 13
bParams.putString("keystroke_delay_extended_ascii","500");
bParams.putString("keystroke_delay_control_chars","800");
bConfig.putBundle("PARAM_LIST", bParams);
configBundle.putBundle("PLUGIN_CONFIG", bConfig);
Intent i = new Intent();
i.setAction("com.symbol.datawedge.api.ACTION");
i.putExtra("com.symbol.datawedge.api.SET_CONFIG", configBundle);
i.putExtra("SEND_RESULT", "true");
i.putExtra("COMMAND_IDENTIFIER", "KEYSTROKE_API");
this.sendBroadcast(i);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(datawedgeKeystrokeNIntentStatusBR);
}
Set INTENT Output
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
registerReceivers();
}
@Override
protected void onResume() {
super.onResume();
setIntentOutputPluginConfiguration();
}
private void registerReceivers() {
IntentFilter filter = new IntentFilter();
filter.addAction("com.symbol.datawedge.api.RESULT_ACTION");
filter.addCategory("android.intent.category.DEFAULT");
registerReceiver(datawedgeKeystrokeNIntentStatusBR, filter);
}
private BroadcastReceiver datawedgeKeystrokeNIntentStatusBR = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String command = intent.getStringExtra("COMMAND").equals("") ? "EMPTY" : intent.getStringExtra("COMMAND");
String commandIdentifier = intent.getStringExtra("COMMAND_IDENTIFIER").equals("") ? "EMPTY" : intent.getStringExtra("COMMAND_IDENTIFIER");
String result = intent.getStringExtra("RESULT").equals("") ? "EMPTY" : intent.getStringExtra("RESULT");
Bundle bundle;
String resultInfo = "";
if (intent.hasExtra("RESULT_INFO")) {
bundle = intent.getBundleExtra("RESULT_INFO");
Set<String> keys = bundle.keySet();
for (String key : keys) {
resultInfo += key + ": " + bundle.getString(key) + "\n";
}
}
String text ="\n" + "Command: " + command + "\n" +
"Result: " + result + "\n" +
"Result Info: " + resultInfo + "\n" +
"CID: " + commandIdentifier;
Log.d("TAG”,text);
}
};
public void setIntentOutputPluginConfiguration() {
Bundle bMain = new Bundle();
Bundle bConfig = new Bundle();
Bundle bParams = new Bundle();
bParams.putString("intent_output_enabled","true");
bParams.putString("intent_action","com.symbol.dwudiusertokens.udi");
bParams.putString("intent_category","zebra.intent.dwudiusertokens.UDI");
bParams.putInt("intent_delivery",2); //Use "0" for Start Activity, "1" for Start Service, "2" for Broadcast
bConfig.putString("PLUGIN_NAME", "INTENT");
bConfig.putString("RESET_CONFIG","false");
bConfig.putBundle("PARAM_LIST", bParams);
bMain.putBundle("PLUGIN_CONFIG", bConfig);
bMain.putString("PROFILE_NAME","UserProfile");
bMain.putString("PROFILE_ENABLED","true");
bMain.putString("CONFIG_MODE","CREATE_IF_NOT_EXIST");
Intent i = new Intent();
i.setAction("com.symbol.datawedge.api.ACTION");
i.putExtra("com.symbol.datawedge.api.SET_CONFIG",bMain);
i.putExtra("SEND_RESULT", "true");
i.putExtra("COMMAND_IDENTIFIER", "INTENT_API");
this.sendBroadcast(i);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(datawedgeKeystrokeNIntentStatusBR);
}
Set BDF processing
Process Plug-ins manipulate the acquired data in a specified way before sending it to the associated app via the Output Plug-in. About BDF. About ADF.
// Main bundle properties
Bundle bMain = new Bundle();
bMain.putString("PROFILE_NAME","Profile12");
bMain.putString("PROFILE_ENABLED","true");
bMain.putString("CONFIG_MODE","CREATE_IF_NOT_EXIST");
// plugin_config bundle properties
Bundle bConfig = new Bundle();
bConfig.putString("PLUGIN_NAME","BDF");
bConfig.putString("RESET_CONFIG","true");
bConfig.putString("OUTPUT_PLUGIN_NAME","KEYSTROKE");
// param_list bundle properties
Bundle bParams = new Bundle();
bParams.putString("bdf_enabled","true");
bParams.putString("bdf_prefix","AAA");
bParams.putString("bdf_send_enter","true");
bConfig.putBundle("PARAM_LIST", bParams);
bMain.putBundle("PLUGIN_CONFIG", bConfig);
Intent i = new Intent();
i.setAction("com.symbol.datawedge.api.ACTION");
i.putExtra("com.symbol.datawedge.api.SET_CONFIG", bMain);
this.sendBroadcast(i);
Set/Get Result Codes
Command and configuration intent parameters determine whether to send result codes (disabled by default). When using SEND_RESULT
, the COMMAND_IDENTIFIER
is used to match the result code with the originating intent. Sample usage of these parameters is shown below.
Note: Modify this generic code to match the API being used.
// send the intent
Intent i = new Intent();
i.setAction(ACTION);
i.putExtra("com.symbol.datawedge.api.CREATE_PROFILE", "Profile1");
// request and identify the result code
i.putExtra("SEND_RESULT","true");
i.putExtra("COMMAND_IDENTIFIER","123456789");
this.sendBroadcast(i);
// register to receive the result
public void onReceive(Context context, Intent intent){
String command = intent.getStringExtra("COMMAND");
String commandidentifier = intent.getStringExtra("COMMAND_IDENTIFIER");
String result = intent.getStringExtra("RESULT");
Bundle bundle = new Bundle();
String resultInfo = "";
if(intent.hasExtra("RESULT_INFO")){
bundle = intent.getBundleExtra("RESULT_INFO");
Set<String> keys = bundle.keySet();
for (String key: keys) {
resultInfo += key + ": "+bundle.getString(key) + "\n";
}
}
String text = "Command: "+command+"\n" +
"Result: " +result+"\n" +
"Result Info: " +resultInfo + "\n" +
"CID:"+commandidentifier;
Toast.makeText(context, text, Toast.LENGTH_LONG).show();
};
Use the internal imager for scanning
Bundle bConfig = new Bundle();
bConfig.putString("PLUGIN_NAME","BARCODE");
Bundle bParams = new Bundle();
bParams.putString("scanner_input_enabled", "true");
//
// auto or valid scanner identifier:
//
bParams.putString("scanner_selection_by_identifier", "INTERNAL_IMAGER");
bConfig.putBundle("PARAM_LIST",bParams);
Configure an inter-character delay
private Integer ctrlCharacterDelayValue;
private Integer genericCharacterDelayValue;
private Boolean flagExtendedASCIIOnly;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
registerReceivers();
ctrlCharacterDelayValue = null;
genericCharacterDelayValue = null;
flagExtendedASCIIOnly = null;
}
private void registerReceivers() {
IntentFilter filter = new IntentFilter();
filter.addAction("com.symbol.datawedge.api.RESULT_ACTION");
filter.addCategory(Intent.CATEGORY_DEFAULT);
registerReceiver(broadcastReceiver, filter);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(broadcastReceiver);
}
//Set configuration
public void setKeystrokeOutputPluginConfiguration(View v) {
Bundle configBundle = new Bundle();
configBundle.putString("PROFILE_NAME","Profile0 (default)");
configBundle.putString("PROFILE_ENABLED","true");
configBundle.putString("CONFIG_MODE","UPDATE");
Bundle bConfig = new Bundle();
bConfig.putString("PLUGIN_NAME", "KEYSTROKE");
Bundle bParams = new Bundle();
bParams.putString("keystroke_output_enabled","true");
if(ctrlCharacterDelayValue!=null){
bParams.putString("keystroke_delay_control_chars",ctrlCharacterDelayValue+"");
}
if(genericCharacterDelayValue !=null){
bParams.putString("keystroke_character_delay", genericCharacterDelayValue +"");
}
if(flagExtendedASCIIOnly!=null){
bParams.putString("keystroke_delay_multibyte_chars_only", flagExtendedASCIIOnly +"");
}
bConfig.putBundle("PARAM_LIST", bParams);
configBundle.putBundle("PLUGIN_CONFIG", bConfig);
Intent i = new Intent();
i.setAction("com.symbol.datawedge.api.ACTION");
i.putExtra("com.symbol.datawedge.api.SET_CONFIG", configBundle);
i.putExtra("SEND_RESULT", "true");
i.putExtra("COMMAND_IDENTIFIER", "KEYSTROKE_API");
this.sendBroadcast(i);
}
//broadcast receiver
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.d(TAG, "#DataWedge-APP# Action: " + action);
//result of set config
if(action.equals("com.symbol.datawedge.api.RESULT_ACTION")){
Bundle extrasBundle = intent.getExtras();
Set<String> keys = extrasBundle.keySet();
if(keys!=null&&keys.contains("RESULT")){
String result = (String)extrasBundle.get("RESULT");
Log.d(TAG,"Result:"+result);
//get additional info
Bundle resultInforBundle = (Bundle) extrasBundle.get("RESULT_INFO");
Object resultCode = resultInforBundle.get("RESULT_CODE");
if(resultCode instanceof String){
String code = (String)resultCode;
Log.d(TAG,"Code:"+code);
}else if(resultCode instanceof String[]){
String[] codesArray = (String[])resultCode;
if(codesArray!=null){
for(String code : codesArray){
Log.d(TAG,"Code:"+code);
}
}
}
}
}//end result of set config
}//end onReceive
};
Scanner Input Parameters
Important: Support for decode parameters can vary depending on the selected scanning device. For device-specific support notes, please refer to the Integrator Guide that accompanied the unit.
All parameters are case sensitive.
Param name |
Param values |
scanning_mode | 1 - Single 2 - UDI 3 - MultiBarcode |
multi_barcode_count | integer from 2–10 |
scanner_selection_by_identifier | See Scanner Identifiers table |
trigger-wakeup | false true |
scanner_input_enabled | false true |
trigger-wakeup | false true |
scanner_selection | auto 0–n (valid scanner index from ENUMERATE_SCANNERS API) |
decoder_upca | false true |
decoder_upce0 | false true |
decoder_ean13 | false true |
decoder_ean8 | false true |
decoder_code128 | false true |
decoder_code39 | false true |
decoder_i2of5 | false true |
decoder_gs1_databar | false true |
decoder_gs1_databar_lim | false true |
decoder_gs1_databar_exp | false true |
decoder_datamatrix | false true |
decoder_qrcode | false true |
decoder_pdf417 | false true |
decoder_composite_ab | false true |
decoder_composite_c | false true |
decoder_microqr | false true |
decoder_aztec | false true |
decoder_maxicode | false true |
decoder_micropdf | false true |
decoder_uspostnet | false true |
decoder_usplanet | false true |
decoder_uk_postal | false true |
decoder_japanese_postal | false true |
decoder_australian_postal | false true |
decoder_canadian_postal | false true |
decoder_dutch_postal | false true |
decoder_us4state | false true |
decoder_us4state_fics | false true |
decoder_codabar | false true |
decoder_msi | false true |
decoder_code93 | false true |
decoder_trioptic39 | false true |
decoder_d2of5 | false true |
decoder_chinese_2of5 | false true |
decoder_korean_3of5 | false true |
decoder_code11 | false true |
decoder_tlc39 | false true |
decoder_mailmark | false true |
decoder_hanxin | false true |
decoder_signature | false true |
decoder_webcode | false true |
decoder_matrix_2of5 | false true |
decoder_upce1 | false true |
decoder_upca_report_check_digit | false true |
decoder_upca_preamble | 0 - Preamble None 1 - Preamble Sys Char 2 - Preamble Country and Sys Char |
decoder_upce0_report_check_digit | false true |
decoder_upce0_preamble | 0 - Preamble None 1 - Preamble Sys Char 2 - Preamble Country and Sys Char |
decoder_upce0_convert_to_upca | false true |
decoder_ean8_convert_to_ean13 | false true |
decoder_code128_length1 | Integer from 0–55 |
decoder_code128_length2 | Integer from 0–55 |
decoder_code128_redundancy | false true |
decoder_code128_enable_plain | false true |
decoder_code128_enable_ean128 | false true |
decoder_code128_enable_isbt128 | false true |
decoder_code128_isbt128_concat_mode | 0 - Concat Mode Never 1 - Concat Mode Always 2 - Concat Mode Auto |
decoder_code128_check_isbt_table | false true |
decoder_code128_security_level | 0 - Security Level 0 1 - Security Level 1 2 - Security Level 2 3 - Security Level 3 |
code128_enable_marginless_decode | false true |
code128_ignore_fnc4 | false true |
decoder_code39_length1 | Integer from 0–55 |
decoder_code39_length2 | Integer from 0–55 |
decoder_code39_verify_check_digit | false true |
decoder_code39_report_check_digit | false true |
decoder_code39_full_ascii | false true |
decoder_code39_redundancy | false true |
decoder_code39_convert_to_code32 | false true |
decoder_code39_report_code32_prefix | false true |
decoder_code39_security_level | 0 - Security Level 0 1 - Security Level 1 2 - Security Level 2 3 - Security Level 3 |
code39_enable_marginless_decode | false true |
decoder_i2of5_length1 | Integer from 0–55 |
decoder_i2of5_length2 | Integer from 0–55 |
decoder_i2of5_redundancy | false true |
decoder_i2of5_check_digit | 0 - No Check Digit 1 - USS Check Digit 2 - OPCC Check Digit |
decoder_i2of5_report_check_digit | false true |
decoder_itf14_convert_to_ean13 | false true |
decoder_i2of5_security_level | 0 - Security Level 0 1 - Security Level 1 2 - Security Level 2 3 - Security Level 3 |
i20f5_enable_marginless_decode | false true |
decoder_gs1_lim_security_level | 1 - Security Level 1 2 - Security Level 2 3 - Security Level 3 4 - Security Level 4 |
decoder_composite_ab_ucc_link_mode | 0 - Link Flag Ignored 1 - Always Linked 2 - Auto Discriminate |
decoder_uk_postal_report_check_digit | false true |
decoder_codabar_length1 | Integer from 0–55 |
decoder_codabar_length2 | Integer from 0–55 |
decoder_codabar_redundancy | false true |
decoder_codabar_clsi_editing | false true |
decoder_codabar_notis_editing | false true |
decoder_msi_length1 | Integer from 0–55 |
decoder_msi_length2 | Integer from 0–55 |
decoder_msi_redundancy | false true |
decoder_msi_check_digit | 0 - One Check Digit 1 - Two Check Digit |
decoder_msi_check_digit_scheme | 0 - Mod-11-10 1 - Mod-10-10 |
decoder_msi_report_check_digit | false true |
decoder_code93_length1 | Integer from 0–55 |
decoder_code93_length2 | Integer from 0–55 |
decoder_code93_redundancy | false true |
decoder_trioptic39_redundancy | false true |
decoder_d2of5_length1 | Integer from 0–55 |
decoder_d2of5_length2 | Integer from 0–55 |
decoder_d2of5_redundancy | false true |
decoder_code11_length1 | Integer from 0–55 |
decoder_code11_length2 | Integer from 0–55 |
decoder_code11_redundancy | false true |
decoder_code11_verify_check_digit | 0 - No Check Digit 1 - 1 Check Digit 2 - 2 Check Digits |
decoder_code11_report_check_digit | false true |
decoder_hanxin_inverse | 0 - Disable 1 - Enable 2 - Auto |
decoder_matrix_2of5_length1 | Integer from 0–55 |
decoder_matrix_2of5_length2 | Integer from 0–55 |
decoder_matrix_2of5_redundancy | false true |
decoder_matrix_2of5_report_check_digit | false true |
decoder_matrix_2of5_verify_check_digit | false true |
decoder_upce1_report_check_digit | false true |
decoder_upce1_preamble | 0 - Preamble None 1 - Preamble Sys Char 2 - Preamble Country and Sys Char |
decoder_upce1_convert_to_upca | false true |
upcean_security_level | 0 - Level 0 1 - Level 1 2 - Level 2 3 - Level 3 |
upcean_supplemental2 | false true |
upcean_supplemental5 | false true |
upcean_supplemental_mode | 0 - No Supplementals 1 - Supplemental Always 2 - Supplemental Auto 3 - Supplemental Smart 4 - Supplemental 378-379 5 - Supplemental 978-979 6 - Supplemental 414-419-434-439 7 - Supplemental 977 |
upcean_retry_count | Integer from 2 to 20 |
upcean_random_weight_check_digit | false true |
upcean_linear_decode | false true |
upcean_bookland | false true |
upcean_coupon | false true |
upcean_coupon_report | 0 - Old Coupon Report Mode 1 - New Coupon Report Mode 2 - Both Coupon Report Modes |
upcean_ean_zero_extend | false true |
upcean_bookland_format | 0 - Format ISBN-10 1 - Format ISBN-13 |
databar_to_upc_ean | false true |
upc_enable_marginless_decode | false true |
aim_mode | on - On off - Off |
beam_timer | Integer from 0–60000 |
Adaptive_Scanning | 1 - Disable 0 - Enable |
Beam_Width | 0 - Narrow 1 - Normal 2 - Wide |
power_mode | 0 - Low Power Mode 1 - Optimized Power Mode 2 - High Power Mode 3 - Always On |
mpd_mode | 0 - Disable Mobile Phone Display Mode 3 - Enable Mobile Phone Display Mode |
reader_mode | 7 - Presentation Mode 0 - Triggered Mode |
linear_security_level | 1 - Security Short Or Codabar 2 - Security All Twice 3 - Security Long And Short 4 - Security All Thrice |
picklist | 0 - Disabled 1 – Enabled/HW picklist 2 – Software Picklist |
aim_type | 0 - Trigger 1 - Timed Hold 2 - Timed Release 3 - Press And Release 5 - Continuous Read 6 - Press and Sustain |
aim_timer | Integer from 0–60000 |
same_barcode_timeout | Integer from 0–5000 |
different_barcode_timeout | Integer from 0–5000 |
illumination_mode | off - Off torch - On |
lcd_mode | 0 - Disabled 3 - Enabled |
low_power_timeout | Integer from 0–1000 |
delay_to_low_power_mode | 16 - 1 Second 29 - 30 Seconds 32 - 1 Minute 37 - 5 Minutes |
illumination_brightness | Integer from 0–10 |
inverse_1d_mode | 0 - Disable 1 - Enable 2 - Auto |
viewfinder_size | Integer from 0–100 |
viewfinder_posx | Integer from 0–100 |
viewfinder_posy | Integer from 0–100 |
1d_marginless_decode_effort_level | 0 - Level 0 1 - Level 1 2 - Level 2 3 - Level 3 |
poor_quality_bcdecode_effort_level | 0 - Level 0 1 - Level 1 2 - Level 2 3 - Level 3 |
charset_name | ISO-8859-1 - ISO-8859-1 Shift_JIS - Shift_JIS UTF-8 - UTF-8 |
viewfinder_mode | 1 - Viewfinder Enabled 2 - Static Reticle |
code_id_type | 0 - Code Id Type None 1 - Code Id Type Aim 2 - Code Id Type Symbol |
volume_slider_type | 0 - Ringer 1 - Music and Media 2 - Alarms 3 - Notification |
decode_audio_feedback_uri | URI – Can be a query of the available URIs from RingToneManager |
decode_haptic_feedback | false true |
bt_disconnect_on_exit | false true |
connection_idle_time | Integer from 0–1800 |
establish_connection_time | Integer from 30–60 |
remote_scanner_audio_feedback_mode | Integer from 0–3 |
remote_scanner_led_feedback_mode | Integer from 0–3 |
display_bt_address_barcode | false true |
good_decode_led_timer | Integer from 0–1000 |
decoding_led_feedback | false true |
decoder_usplanet_report_check_digit | false true |
keep_pairing_info_after_reboot | Enable/disable automatic re-connection to the connected Bluetooth scanner after device reboot. Applies only to connected Bluetooth scanners: 0 - Disable 1 - Enable |
Important: Support for decode parameters can vary depending on the scanning device selected. For device-specific support notes, please refer to the Integrator Guide that accompanied the unit.
Serial Input Parameters
Important: Support for serial parameters varies by device. For device-specific support notes, please refer to the Integrator Guide that accompanied the unit.
All parameters are case sensitive.
Param name |
Param values |
serial_port_id | 0–n (must be a valid index) |
serial_input_enabled | false true |
serial_baudrate | 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800 or 921600 |
serial_databits | 7 or 8 |
serial_parity | NONE, ODD, EVEN, MARK or SPACE |
serial_stopbits | 1 or 2 |
serial_flow | FLOW_NONE, FLOW_RTS_CTS or FLOW_XON_XOFF |
Keystroke Output Parameters
All parameters are case sensitive.
Param name |
Param values |
keystroke_output_enabled | false true |
keystroke_action_char | NONE - ASCII_NO_VALUE TAB - ASCII_TAB_VALUE LF - ASCII_LF_VALUE CR - ASCII_CR_VALUE |
keystroke_delay_extended_ascii | Integer from 0–1000 |
keystroke_delay_control_chars | Integer from 0–1000 |
keystroke_character_delay | Integer from 0–1000 |
keystroke_delay_multibyte_chars_only | false true |
Keystroke Delay Notes
- The
keystroke_delay_extended_ascii
parameter is deprecated. - If a Keystroke Plug-in bundle uses the
keystroke_delay_extended_ascii
parameter, DataWedge sets thekeystroke_delay_multibyte_chars_only
parameter to true. - If both the
keystroke_delay_extended_ascii
andkeystroke_character_delay
parameters are sent:- The
keystroke_character_delay
value is retained. - The
keystroke_delay_extended_ascii
value is ignored. - If available, the
keystroke_delay_multibyte_chars_only
value is saved; it is otherwise considered false.
- The
SEE ALSO:
Zebra Support Central | Integrator Guides, Product Manuals, Software Downloads and Support
LaunchPad | Zebra Developer Community
Intent | Android Developers
Intents and Intent Filters | Android Developers
Android Intents | Tutorial