Flutter ручной QR сканнер под windows возвращает неверный результат

Пишу приложение под Windows на Flutter где есть необходимость читать 2D штрихкоды. Генерирую QR код с текстом (53a7a000-958c-11ec-0a80-085a0034aec2) и сканирую ручным сканером QR кодов. Столкнулся с такой проблемой, при чтении код генерируется с ошибками (не правильные символы или просто их не хватает). Но когда запускаю тот же код по Android всё начинает работать корректно.

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  static const String _title = 'RawKeyboardListener';

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: _title,
      home: Scaffold(
        appBar: AppBar(title: const Text(_title)),
        body: const MyStatefulWidget(),
      ),
    );
  }
}

class MyStatefulWidget extends StatefulWidget {
  const MyStatefulWidget({Key? key}) : super(key: key);

  @override
  State<MyStatefulWidget> createState() => _MyStatefulWidgetState();
}

class _MyStatefulWidgetState extends State<MyStatefulWidget> {
  final FocusNode _focusNode = FocusNode();

  String _controller = '';

  String? _message;

  @override
  void dispose() {
    _focusNode.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    FocusScope.of(context).requestFocus(_focusNode);
    final TextTheme textTheme = Theme.of(context).textTheme;
    return Container(
      color: Colors.white,
      alignment: Alignment.center,
      child: DefaultTextStyle(
        style: textTheme.bodyText1!,
        child: RawKeyboardListener(
          focusNode: _focusNode,
          onKey: (RawKeyEvent event) {
            if (event is RawKeyDownEvent) {
              if (event.physicalKey == PhysicalKeyboardKey.enter) {
                print('ENTER');
                setState(() {
                  _message = _controller;
                  _controller = '';
                });
              } else {
                print(
                    '_handleKeyEvent Event data keyLabel ${event.data.keyLabel}');
                _controller += event.data.keyLabel;
              }

              print('controller: $_controller');
              print('message: $_message');
            }
          },
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(
                _message ?? 'Press a key',
              ),
              Text(
                '${_message?.length}',
              ),
            ],
          ),
        ),
      ),
    );
  }
}



Ответы (0 шт):