0

Motorola の emdk ライブラリを使用して SOFT トリガー (アプリ ボタンを使用) で動作する、バーコードをスキャンするためのカスタム スキャナーがあります。

barcodeManager = (BarcodeManager) this.emdkManager.getInstance(EMDKManager.FEATURE_TYPE.BARCODE);  
scanner = barcodeManager.getDevice(BarcodeManager.DeviceIdentifier.DEFAULT);  
scanner.addStatusListener(articleListener);  
scanner.addDataListener(new Scanner.DataListener() {  
    @Override  
    public void onData(ScanDataCollection scanDataCollection) {  
        processData(scanDataCollection);  
    }  
});  
scanner.addDataListener(dataListener);  
scanner.triggerType = Scanner.TriggerType.SOFT_ALWAYS;  
scanner.enable();  

データをスキャンするためにソフト トリガーとハード トリガーの両方を使用するにはどうすればよいですか? datalistenerプロセスを使用して、両方から受信したデータを処理しますか?

4

1 に答える 1

2

Zebra Technologies は 2014 年 10 月に Motorola Solution のエンタープライズ ビジネスを買収し、更新されたドキュメントのほとんどがZebra Launchpadで利用できるようになりました。

Scanner.TriggerTypeZebra Android デバイスでバーコード スキャナーをアクティブにする方法を制御します。通常、ハード (ハードウェア トリガー ボタンを押すとスキャンがアクティブになります) またはソフト (Scanner.read()メソッドを呼び出すとすぐにスキャンがアクティブになります) を設定できます。
ハードウェア トリガーを使用できるアプリケーションを作成し、画面上のボタンでスキャナーをアクティブにするには、triggerType を に設定したままにし、ソフト スキャンボタンScanner.TriggerType.HARDのクリック イベント ハンドラーにログインを実装して、TriggerType を に設定し、次にメソッドを呼び出します。最終的に、別の読み取りがアクティブかどうかを確認できます。これは、 Android 用 EMDK に含まれている Barcode API サンプル にボタンを追加してテストできるサンプル実装です(最新は v4.0)。Scanner.TriggerType.SOFT_ONCEScanner.read()
:

private void softScan() {
    if (scanner != null) {
        try {
            // Reset continuous flag
            bContinuousMode = false;
            if (scanner.isReadPending()) {
                // Cancel the pending read.
                scanner.cancelRead();
            }
            scanner.triggerType = TriggerType.SOFT_ONCE;
            scanner.read();

            new AsyncUiControlUpdate().execute(true);
        } catch (ScannerException e) {
            textViewStatus.setText("Status: " + e.getMessage());
        }
    }
}

したがって、通常は で作業しTriggerType.HARDますが、SCANボタンを押すと、保留中の読み取りが無効になり、 に切り替わりますTriggerType.SCAN_ONCE
ステータス リスナーの実装では、スキャナーを切り替えてメソッド TriggerType.HARDを呼び出す必要があります。read()

標準の Zebra の EMDK バーコード API サンプルにボタンを追加した、このgithub リポジトリで完全なサンプルを見つけることができます。Soft Scan

ここに画像の説明を入力

すべてのデータは、同じデータ リスナーによって受信されます。

于 2016-02-06T20:08:27.953 に答える