スキャナ パラメータの切り替え

DataWedge 15.0

SWITCH_SCANNER_PARAMS

バーコード、スキャナ、リーダーの各パラメータをを 1 つ以上インテント エクストラとして渡し、一時的にアクティブなプロファイルの設定を変更するために使用します。変化する状況に応じて、スキャナ設定を動的に調整できます。たとえば、光量不足が検出されたときに、開発者は、スキャナのイルミネーションを有効にする場合があります。この API を使用して適用された設定は、次にプロファイルを切り替えたときに破棄されます。

注意事項

前提条件と仮定:

  • DataWedge と対応するプロファイルは、有効になっている必要があります。
  • アクティブ プロファイルでバーコード スキャンを有効にする必要があります。
  • インテントに、無効な、またはサポートされていないスキャナ パラメータや値が含まれている場合は、結果コードが送信されます。

関数プロトタイプ

Intent i = new Intent(); i.setAction("com.symbol.datawedge.api.ACTION"); i.putExtra("com.symbol.datawedge.api.SWITCH_SCANNER_PARAMS", <bundle>);

パラメータ

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

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

EXTRA_DATA [bundle]: "<名前, 値>" - スキャナ パラメータを名前と値のペアとして受け入れます

結果コード

DataWedge は、アプリにインテント エクストラ (SEND_RESULT および COMMAND_IDENTIFIER) が含まれている場合、次のエラー コードを返し、DataWedge の結果インテント メカニズムを使用してアプリで結果を取得できるようにします。以下のを参照してください。

  • DATAWEDGE_DISABLED - DataWedge が無効です
  • PROFILE_DISABLED - プロファイルが無効です
  • PLUGIN_DISABLED - スキャナ プラグインが無効になっています
  • SCANNER_DISABLED - スキャナが無効になっています
  • PARAMETER_INVALID - 指定されたスキャナ パラメータが無効です
  • PARAMETER_NOT_SUPPORTED - 指定されたスキャナ パラメータはサポートされていません
  • VALUE_INVALID - スキャナ パラメータに指定された値は無効です
  • VALUE_NOT_SUPPORTED - スキャナ パラメータに指定された値はサポートされていません

詳細については、結果コード ガイドも参照してください。


コード例

単一のスキャナを使用するために、以下のコードでは、アクティブ プロファイル内のアクティブなスキャナ用のスキャナ パラメータを切り替えるインテントを渡します。切り替えの結果を検証する (またはエラーが予想される場合) には、インテント エクストラの SEND_RESULT および COMMAND_IDENTIFIER を包含して、結果を取得します (これも示されています)。

// create the intent and action Intent i = new Intent(); i.setAction("com.symbol.datawedge.api.ACTION"); Bundle bScannerParams = new Bundle(); bScannerParams.putString("illumination_mode", "off"); bScannerParams.putString("decode_audio_feedback_uri", "Pollux"); i.putExtra("com.symbol.datawedge.api.SWITCH_SCANNER_PARAMS", bScannerParams); // generate result codes i.putExtra(“SEND_RESULT”,"true"); i.putExtra("COMMAND_IDENTIFIER", "123456789"); //returned as it is with the result // send the intent this.sendBroadcast(i); // register the broadcast receiver (for result codes) 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) { if(key.equalsIgnoreCase("RESULT_CODE")){ resultInfo += key + ": " + Arrays.toString(bundle.getStringArray(key)); }else { resultInfo += key + ": " + bundle.getString(key) + "\n"; } } }

複数のスキャナでは、スキャナ パラメータの切り替え API に、インテント エクストラ scanner_selection_by_identifier で使用する特定のスキャナを含める必要があります。

Intent i = new Intent(); i.setAction("com.symbol.datawedge.api.ACTION"); i.setPackage("com.symbol.datawedge"); i.putExtra("scanner_selection_by_identifier", "BLUETOOTH_RS6000"); i.putExtra("SEND_RESULT","LAST_RESULT"); Bundle bScannerParams = new Bundle(); bScannerParams.putString("illumination_mode", "off"); i.putExtra("com.symbol.datawedge.api.SWITCH_SCANNER_PARAMS", bScannerParams); sendBroadcast(i);

関連項目:

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

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

インテント | Android 開発者

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

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