SWITCH_SCANNER_PARAMS
DataWedge 6.5 で導入。
1 つ以上のバーコード、スキャナ、またはリーダーの、あるいはそのすべてのパラメータをインテント エクストラとして渡し、一時的にアクティブなプロファイルの設定を更新するために使用します。この API を使用すると、条件の変更に応じてスキャナ設定をいつでも変更できます。たとえば、光量不足が検出されたときに、開発者は、スキャナのイルミネーションを有効にしたいと考えるかもしれません。
注: この API によって構成された設定は、次にプロファイルを切り替えたときに破棄されます。
関数プロトタイプ
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);
注意事項
前提条件と仮定:
- DataWedge とそれぞれのプロファイルは、有効になっている必要があります
- アクティブ プロファイルでバーコード スキャンを有効にする必要があります
- インテントに、無効な、またはサポートされていないスキャナ パラメータや値が含まれている場合は、結果コードが送信されます
関連項目:
Zebra Support Central | インテグレータ ガイド、製品マニュアル、ソフトウェア ダウンロードおよびサポート
LaunchPad | Zebra 開発者コミュニティ
インテント | Android 開発者
インテントおよびインテント フィルタ | Android 開発者
Android インテント | チュートリアル