データキャプチャを切り替えます

DataWedge 13.0

SWITCH_DATACAPTURE

DataWedge 11.2 で導入。

実行時に次の機能を切り替えるために使用します。

  • バーコード スキャンと バーコード強調 (バーコードを強調表示してアイテムの検索を補助するために、バーコード スキャンとビューファインダ (またはプレビュー画面) の使用を切り替える機能など)。
  • ワークフロー入力オプション (同じアプリで運転免許証をスキャンしナンバー プレートを読み取るなど)。

注: この API によって構成された設定は、プロファイルが別のプロファイルに切り替わるまで有効です。

関数プロトタイプ

Intent i = new Intent();
i.setAction("com.symbol.datawedge.api.ACTION");
i.putExtra("APPLICATION_PACKAGE", getPackageName());
i.setPackage("com.symbol.datawedge");
i.putExtra("SEND_RESULT", "LAST_RESULT");
i.putExtra("com.symbol.datawedge.api.SWITCH_DATACAPTURE", "<Input plugin name>");

Bundle paramList = new Bundle();

paramList.putString("scanner_selection_by_identifier", "<Selected scanner>"); //INTERNAL_IMAGER

paramList.putString("<Param1ID>", "<Param1Value>");

i.putExtra("PARAM_LIST", paramList);

sendBroadcast(i);

パラメータ

ACTION [String]: "com.symbol.datawedge.api.ACTION"

EXTRA_DATA [String]: "APPLICATION_PACKAGE" – 呼び出し元のアプリケーション パッケージ名

EXTRA_DATA [String]: "com.symbol.datawedge.api.SWITCH_DATACAPTURE"

PACKAGE: com.symbol.datawedge

EXTRA_DATA [String]: "PARAM_LIST"–入力プラグインに渡されるパラメータ リスト

結果コード

アプリにインテントエクストラ SEND_RESULT が含まれている場合、DataWedge は次のエラー コードを返します。

  • DATAWEDGE_DISABLED - DataWedge が無効です
  • PROFILE_DISABLED - プロファイルが無効です
  • PLUGIN_DISABLED - スキャナ プラグインが無効になっています
  • NO_ACTIVE_PROFILE – アクティブなプロファイルはロードされていません
  • PLUGIN_NOT_SUPPORTED – 指定されたプラグインはデバイスではサポートされていません
  • INVALID_WORKFLOW – 無効なワークフロー ID が指定されました
  • UNLICENSED_FEATURE – 切り替え先のパラメータまたは機能に対して有効なライセンスがありません
  • PARAMETER_INVALID - パラメータが無効です
  • PARAMETER_NOT_SUPPORTED - パラメータはサポートされていません
  • VALUE_INVALID - パラメータに指定された値が無効です
  • VALUE_NOT_SUPPORTED - パラメータに指定された値はサポートされていません

コード例

バーコード スキャンと強調を切り替えます

このサンプル コードは、実行時にバーコード スキャンからバーコード強調に切り替える方法を示します。

public void onClickHighlight(View view) {

    //Specify the DataWedge action and SWITCH_DATACAPTURE API parameters
    Intent i = new Intent();
    i.setAction("com.symbol.datawedge.api.ACTION");
    i.putExtra("APPLICATION_PACKAGE", getPackageName());
    i.setPackage("com.symbol.datawedge");
    i.putExtra("SEND_RESULT", "LAST_RESULT");
    i.putExtra("com.symbol.datawedge.api.SWITCH_DATACAPTURE", "BARCODE");

    Bundle paramList = new Bundle();
    //Specify the scanner to use (Only internal imager and camera are supported currently)
    paramList.putString("scanner_selection_by_identifier", "INTERNAL_IMAGER");
    //Enable barcode highlighting
    paramList.putString("barcode_highlighting_enabled", "true");

    //Create a barcode highlighting Rule 1 [Start]
    Bundle rule1 = new Bundle();
    rule1.putString("rule_name", "Rule1");
        Bundle rule1Criteria = new Bundle();

    //Set the criteria/condition. Specify the contains parameter.
    Bundle bundleContains1 = new Bundle();
    bundleContains1.putString("criteria_key", "contains");
    bundleContains1.putString("criteria_value", "090986");

    //Container is just one parameter of identifier group.
    // There are other params such as ignore case, min length, max length
    ArrayList<Bundle> identifierParamList = new ArrayList<>();
    identifierParamList.add(bundleContains1);

    //Add the parameters of "identifier" group as a ParcelableArrayList to criteria list
    rule1Criteria.putParcelableArrayList("identifier", identifierParamList);

    //Add the criteria to Rule bundle
    rule1.putBundle("criteria", rule1Criteria);

    //Set up the action bundle by specifying the color to be highlight
    Bundle bundleFillColor = new Bundle();
    bundleFillColor.putString("action_key", "fillcolor");
    bundleFillColor.putString("action_value", "#CEF04E6E");

    ArrayList<Bundle> rule1Actions = new ArrayList<>();
    rule1Actions.add(bundleFillColor);
    rule1.putParcelableArrayList("actions", rule1Actions);
    //Create a barcode highlighting Rule 1 [Finish]

    //Create a barcode highlighting Rule 2 [Start]
    Bundle rule2 = new Bundle();
    rule2.putString("rule_name", "Rule2");
    Bundle rule2Criteria = new Bundle();

    Bundle bundleContains2 = new Bundle();
    bundleContains2.putString("criteria_key", "contains");
    bundleContains2.putString("criteria_value", "7777");

    ArrayList<Bundle> identifierParamList2 = new ArrayList<>();
    identifierParamList2.add(bundleContains2);

    rule2Criteria.putParcelableArrayList("identifier", identifierParamList2);

    rule2.putBundle("criteria", rule2Criteria);
    Bundle rule2BundleStrokeColor = new Bundle();
    rule2BundleStrokeColor.putString("action_key", "fillcolor");
    rule2BundleStrokeColor.putString("action_value", "#CE7F2714");
    ArrayList<Bundle> rule2Actions = new ArrayList<>();
    rule2Actions.add(rule2BundleStrokeColor);
    rule2.putParcelableArrayList("actions", rule2Actions);
    //Create a barcode highlighting Rule 1 [Finish]

    //Add the two created rules to the rule list
    ArrayList<Bundle> ruleList = new ArrayList<>();
    ruleList.add(rule1);
    ruleList.add(rule2);


    //Assign the rule list to barcode_overlay parameter
    Bundle ruleBundlebarcodeOverlay = new Bundle();
    ruleBundlebarcodeOverlay.putString("rule_param_id", "barcode_overlay");
    ruleBundlebarcodeOverlay.putParcelableArrayList("rule_list", ruleList);


    ArrayList<Bundle> ruleParamList = new ArrayList<>();
    ruleParamList.add(ruleBundlebarcodeOverlay);

    paramList.putParcelableArrayList("rules", ruleParamList);

    i.putExtra("PARAM_LIST", paramList);

    sendBroadcast(i);
}

public void onClickRegular(View view) {

    //Specify the DataWedge action and SWITCH_DATACAPTURE API parameters
    Intent i = new Intent();
    i.setAction("com.symbol.datawedge.api.ACTION");
    i.putExtra("APPLICATION_PACKAGE", getPackageName());
    i.setPackage("com.symbol.datawedge");
    i.putExtra("SEND_RESULT", "LAST_RESULT");
    i.putExtra("com.symbol.datawedge.api.SWITCH_DATACAPTURE", "BARCODE");

    Bundle paramList = new Bundle();
    //Specify the scanner to use (Only internal imager and camera are supported currently)
    paramList.putString("scanner_selection_by_identifier", "INTERNAL_IMAGER");
    //Disable barcode highlighting
    paramList.putString("barcode_highlighting_enabled", "false");

    i.putExtra("PARAM_LIST", paramList);

    sendBroadcast(i);
}

ワークフロー オプションを切り替えます

このサンプル コードは、実行時に識別ドキュメントのスキャンをメーター読み取りに切り替える方法を示しています。

public void switchToIDScanning()
{
    Intent i = new Intent();
    i.setAction("com.symbol.datawedge.api.ACTION");
    i.putExtra("APPLICATION_PACKAGE", getPackageName());
    i.setPackage("com.symbol.datawedge");
    i.putExtra("SEND_RESULT","LAST_RESULT");
    i.putExtra("com.symbol.datawedge.api.SWITCH_DATACAPTURE", "WORKFLOW");

    Bundle paramList = new Bundle();
    paramList.putString("workflow_name","id_scanning");
    paramList.putString("workflow_input_source","2");

    Bundle paramSet1 = new Bundle();
    paramSet1.putString("module","IDDecoderModule");
    Bundle moduleAParams = new Bundle();
    moduleAParams.putString("session_timeout", "25000");
    paramSet1.putBundle("module_params",moduleAParams);

    ArrayList<Bundle> paramSetList = new ArrayList<>();
    paramSetList.add(paramSet1);

    paramList.putParcelableArrayList("workflow_params", paramSetList);

    i.putExtra("PARAM_LIST", paramList);

    sendBroadcast(i);
}

public void switchToMeterReading()
{
    Intent i = new Intent();
    i.setAction("com.symbol.datawedge.api.ACTION");
    i.putExtra("APPLICATION_PACKAGE", getPackageName());
    i.setPackage("com.symbol.datawedge");
    i.putExtra("SEND_RESULT","LAST_RESULT");
    i.putExtra("com.symbol.datawedge.api.SWITCH_DATACAPTURE", "WORKFLOW");

    Bundle paramList = new Bundle();
    paramList.putString("workflow_name","meter_reading");
    paramList.putString("workflow_input_source","2");

    Bundle paramSet1 = new Bundle();
    paramSet1.putString("module","MeterReaderModule");
    Bundle moduleAParams = new Bundle();
    moduleAParams.putString("session_timeout", "15000");

    paramSet1.putBundle("module_params",moduleAParams);

    ArrayList<Bundle> paramSetList = new ArrayList<>();
    paramSetList.add(paramSet1);

    paramList.putParcelableArrayList("workflow_params", paramSetList);

    i.putExtra("PARAM_LIST", paramList);

    sendBroadcast(i);
}

関連項目:

Zebra Support Central | インテグレータ ガイド、製品マニュアル、ソフトウェア ダウンロードおよびサポート

LaunchPad | Zebra 開発者コミュニティ

インテント | Android 開発者

インテントおよびインテント フィルタ | Android 開発者

Android インテント | チュートリアル

ワークフロー入力

ワークフロー入力プログラマ ガイド