Я использую этот код, чтобы прослушать, что читает мой Zebra TC25.
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
class ScanReader extends HookWidget {
const ScanReader({super.key});
@override
Widget build(BuildContext context) {
useEffect(() {
thisHandle(KeyEvent keyEvent) {
print(keyEvent);
return true;
}
HardwareKeyboard.instance.addHandler(thisHandle);
return () {
HardwareKeyboard.instance.removeHandler(thisHandle);
};
}, []);
return const Text("Zebra scan listener");
}
}
Проблема в том, что моя функция thisHandle никогда не является триггером. Почему ?





Чтобы прослушать KeyEvent, отправляемые Datawedge в Zebra, вам необходимо Send characters as events, как описано здесь: https://developer.zebra.com/blog/listening-keypress-events-datawedge
Также рекомендуется отправлять события TAB и ENTER, как описано здесь: https://supportcommunity.zebra.com/s/article/DataWedge-for-Android-Send-Enter-or-Tab-after-scanning?language= ru_US
Таким образом, ваша функция thisHandle должна сработать.