ワークフローを列挙
デバイスで利用可能な ワークフロー入力 のリストを生成します。ワークフローがライセンス付与されているかどうかに関わらず、ワークフロー IDと名前を返します。
関数プロトタイプ
Intent intent = new Intent();
intent.setAction("com.symbol.datawedge.api.ACTION");
intent.putExtra("com.symbol.datawedge.api.ENUMERATE_WORKFLOWS", "");
パラメータ
ACTION [String]: "com.symbol.datawedge.api.ENUMERATE_WORKFLOWS"
戻り値
ワークフローの列挙リストは、ブロードキャスト インテント (com.symbol.datawedge.api.RESULT_ENUMERATE_WORKFLOWS
) を介して返されます。ワークフローのリストは、文字列配列の arrayList<String> として返されます。
コード例
ブロードキャスト インテントを登録/登録解除してワークフローを列挙し、インテントを送信し、結果を取得するサンプル コード:
/*Call before sending the enumerate workflows query*/
private void registerReceivers() {
IntentFilter filter = new IntentFilter();
filter.addAction("com.symbol.datawedge.api.RESULT_ACTION");
filter.addCategory(Intent.CATEGORY_DEFAULT);
registerReceiver(broadcastReceiver, filter);
}
/* Send the enumerate workflows command to DataWedge intent API*/
private void enumerateWorkflows() {
Intent intent = new Intent();
intent.setAction("com.symbol.datawedge.api.ACTION");
intent.putExtra("com.symbol.datawedge.api.ENUMERATE_WORKFLOWS", "");
sendBroadcast(intent);
}
/*unregister the broadcast receiver*/
private void unRegisterReceivers() {
unregisterReceiver(broadcastReceiver);
}
/*Create broadcast receiver to receive the enumerate workflows result*/
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.d("EnumerateWorkflows", "Action: " + action);
if (action.equals("com.symbol.datawedge.api.RESULT_ACTION")) {
if (intent.hasExtra("com.symbol.datawedge.api.RESULT_ENUMERATE_WORKFLOWS")) {
Bundle workflowBundle = (Bundle) intent.getExtras().get("com.symbol.datawedge.api.RESULT_ENUMERATE_WORKFLOWS");
String strData = "";
int count = 1;
ArrayList<String> workflowList = new ArrayList<>();
if (workflowBundle != null) {
for (String key : workflowBundle.keySet()) {
String value = workflowBundle.getString(key);
if (value != null) {
String listItem = count + ") " +key +" - "+ value;
workflowList.add(listItem);
strData += listItem + "\n";
count++;
}
}
Log.d("EnumerateWorkflows",strData );
}
}
}
}
};
出力データの例:
/* workflowID - WorkflowName */
1) tin_number - Tire Identification Number(TIN)
2) license_plate - License Plate
3) container_scanning - Shipping Container ID
4) free_form_ocr - Free - Form OCR
5) free_form_capture - Free - Form Image Capture
6) meter_reading - Meter
7) document_capture - Document Capture
8) id_scanning - Identification Documents
9) vin_number - Vehicle Identification Number(VIN)
関連項目:
Zebra Support Central | インテグレータ ガイド、製品マニュアル、ソフトウェア ダウンロードおよびサポート
開発者ポータル | Zebra 開発者コミュニティ
インテント | Android 開発者
インテントおよびインテント フィルタ | Android 開発者
Android インテント | チュートリアル