ENUMERATE_SCANNERS
DataWedge 6.3 で導入。
デバイスで使用可能なスキャナの番号付きリスト (インデックス) を生成します。
重要: スキャナ インデックスが定められていないデバイスもあります。インデックスは、サポートされている内部または外部、あるいはその両方のスキャナの数によって異なります。対象となるスキャナは、スキャナ インデックス生成時にデバイスにインストールまたは接続されているものになります。
関数プロトタイプ
Intent i = new Intent();
i.setAction("com.symbol.datawedge.api.ACTION");
i.putExtra("com.symbol.datawedge.api.ENUMERATE_SCANNERS", "");
パラメータ
ACTION [String]: "com.symbol.datawedge.api.ENUMERATE_SCANNERS"
戻り値
スキャナの列挙リストは、ブロードキャスト インテント (com.symbol.datawedge.api.ACTION_ENUMERATEDSCANNERLIST
) を介して返されます。スキャナのリストは、文字列配列として返されます (以下を参照してください)。
バンドル エクストラ
SCANNER_NAME [String]:
SCANNER_INDEX [String]:
SCANNER_CONNECTION_STATE [String]:
SCANNER_IDENTIFIER [String]: デバイスでサポートされている各スキャナのスキャナ情報バンドル (DataWedge 6.5 で導入)。どちらのパラメータも DataWedge 6.6 以降でサポートされており、コードでインデックスも参照されている場合は、スキャナ識別子の値が優先されます。
指定可能な値:
- AUTO - スキャナ自動選択
- INTERNAL_IMAGER - 内蔵イメージャ スキャナ
- INTERNAL_LASER - 内蔵レーザー スキャナ
- INTERNAL_CAMERA - 内蔵カメラ スキャナ
- SERIAL_SSI ET50/ET55 用のプラグ接続可能な Z バック スキャナ
- BLUETOOTH_SSI - RS507 Bluetooth スキャナ
- BLUETOOTH_RS6000 - RS6000 Bluetooth スキャナ
- BLUETOOTH_DS3678 - DS3678 Bluetooth スキャナ
- PLUGABLE_SSI - シリアル SSI スキャナ RS429 (WT6000 用)
- PLUGABLE_SSI_RS5000 - シリアル SSI スキャナ RS5000 (WT6000 用)
- USB_SSI_DS3608 - DS3608 プラグ接続可能 USB スキャナ
コード例
スキャナの列挙
//
// Call before sending the enumeration query
//
public void registerReciever(){
IntentFilter filter = new IntentFilter();
filter.addAction("com.symbol.datawedge.api.RESULT_ACTION");//RESULT_ACTION
filter.addCategory(Intent.CATEGORY_DEFAULT);
registerReceiver(enumeratingBroadcastReceiver, filter);
}
//
// Send the enumeration command to DataWedge
//
public void enumerateScanners(){
Intent i = new Intent();
i.setAction("com.symbol.datawedge.api.ACTION");
i.putExtra("com.symbol.datawedge.api.ENUMERATE_SCANNERS", "");
this.sendBroadcast(i);
}
public void unRegisterReciever(){
unregisterReceiver(enumeratingBroadcastReceiver);
}
//
// Create broadcast receiver to receive the enumeration result
//
private BroadcastReceiver enumeratingBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.d(TAG, "Action: " + action);
if(action.equals("com.symbol.datawedge.api.RESULT_ACTION")){
//
// enumerate scanners
//
if(intent.hasExtra("com.symbol.datawedge.api.RESULT_ENUMERATE_SCANNERS")) {
ArrayList<Bundle> scannerList = (ArrayList<Bundle>) intent.getSerializableExtra("com.symbol.datawedge.api.RESULT_ENUMERATE_SCANNERS");
if((scannerList != null) && (scannerList.size() > 0)) {
for (Bundle bunb : scannerList){
String[] entry = new String[4];
entry[0] = bunb.getString("SCANNER_NAME");
entry[1] = bunb.getBoolean("SCANNER_CONNECTION_STATE")+"";
entry[2] = bunb.getInt("SCANNER_INDEX")+"";
entry[3] = bunb.getString("SCANNER_IDENTIFIER");
Log.d(TAG, "Scanner:" + entry[0] + " Connection:" + entry[1] + " Index:" + entry[2] + " ID:" + entry[3]);
}
}
}
}
}
};
スキャナ詳細の取得
// RESULT_ACTION_EXTRA_ENUMERATE_SCANNERS
if(intent.hasExtra("com.symbol.datawedge.api.RESULT_ENUMERATE_SCANNERS")) {
Log.d(TAG, ">>> RESULT_ACTION_EXTRA_ENUMERATE_SCANNERS <<<");
ArrayList<Bundle> scannerList = (ArrayList<Bundle>) intent.getSerializableExtra("com.symbol.datawedge.api.RESULT_ENUMERATE_SCANNERS");
if((scannerList != null) && (scannerList.size() > 0)) {
for ( Bundle bunb: scannerList) {
String ScannerName = bunb.getString("SCANNER_NAME");
int ScannerIndex = bunb.getInt("SCANNER_INDEX"));
Boolean ScannerConnectionState = bunb.getBoolean("SCANNER_CONNECTION_STATE");
String ScannerId = bunb.getString("SCANNER_IDENTIFIER");
}
}
}
コメント
スキャナとそのパラメータは、現在アクティブなプロファイルに基づいて設定されます。
関連項目:
Zebra Support Central | インテグレータ ガイド、製品マニュアル、ソフトウェア ダウンロードおよびサポート
LaunchPad | Zebra 開発者コミュニティ
インテント | Android 開発者
インテントおよびインテント フィルタ | Android 開発者
Android インテント | チュートリアル