【问题标题】:FLUTTER / How to scan barcodes with RawKeyboardListener?FLUTTER / 如何使用 RawKeyboardListener 扫描条形码?
【发布时间】:2023-02-15 18:41:39
【问题描述】:

我正在构建条形码阅读器应用程序。 Android 设备中包含的条形码读取会发生条形码。我正在用 RawKeyboardListener 尝试这个,但我不知道如何获得条形码结果,你能帮忙吗?

 RawKeyboardListener(
                      onKey: handleKey,
                      focusNode: FocusNode(),
                      autofocus: true,
                      child: Text('No textfield'),
                    ),


  handleKey(RawKeyEvent key) {
    
  }

【问题讨论】:

    标签: flutter handhelddevice


    【解决方案1】:

    RawKeyboardListener() 中的 onKey() 函数返回一个具有 RawKeyDownEvent 和 RawKeyUpEvent 的事件。事件以这种格式返回单个字符 -

    RawKeyDownEvent#1640d(logicalKey: LogicalKeyboardKey#00061(keyId: “0x00000061”,keyLabel:“A”,debugName:“Key A”),physicalKey: PhysicalKeyboardKey#70004(usbHidUsage:“0x00070004”,debugName:“Key A”),重复:假)

    因此,如果条形码返回一个名称,您可以使用以下代码进行检索:

    String qrCodeText = '';
    RawKeyboardListener(
        autofocus: true,
        focusNode: FocusNode(),
        onKey: (event) {
          if (event is RawKeyDownEvent) {
            if (event.logicalKey.keyLabel.length == 1) {
              qrCodeText += event.logicalKey.keyLabel;
            } else if (event.logicalKey.keyLabel == 'Enter') {
              print('Data received from the QR Code: $qrCodeText');
            }
          }
        },
        child: Text('$qrCodeText'));
    

    希望这能解决您的问题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-08
      • 2019-10-03
      • 2021-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多