【问题标题】: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'));
希望这能解决您的问题!