initHardwareScanStream method

Future<Stream<String>> initHardwareScanStream()

Implementation

Future<Stream<String>> initHardwareScanStream() async {
  isScannerDevice = false;

  try {
    _scanController = StreamController<String>();

    if (kIsWeb || Platform.isIOS) {
      return _keyboardStream();
    }

    _honeywellScanner ??= HoneywellScanner();

    if (await _honeywellScanner!.isSupported()) {
      _setHoneywellListener();
      await _honeywellScanner!.startScanner();
      isScannerDevice = true;
    } else if (await _isISafeDevice()) {
      isScannerDevice = true;
      return _keyboardStream();
    } else {
      _zebraScanSubscription ??= await _getZebraScanSub();
      isScannerDevice = true;
    }

    return _scanController!.stream;
  } catch (_) {
    return _keyboardStream();
  }
}