Плагин Flutter NFC только сканирует один раз - PullRequest
0 голосов
/ 09 марта 2019

Я новичок, чтобы трепетать. Я использую этот плагин NFC , чтобы прочитать тег NFC в приложении Android. В настоящее время, когда я открываю свое приложение, я могу сканировать тег один раз. Но если я пытаюсь отсканировать более одного тега, ничего не читается. Здесь - это пример кода, который я использовал из примера плагина. Любая помощь будет высоко ценится

1 Ответ

0 голосов
/ 01 июня 2019

У меня похожая проблема с этим кодом (поправьте меня, если я ошибаюсь, но, похоже, это пример из описания пакета)).В моем случае я могу прочитать много тегов после запуска приложения и после начала чтения тегов (кнопка Start NFC).Но после нажатия кнопки Stop NFC и снова запуска кнопки NFC приложение не читает и не показывает теги.Я думаю, что теги читаются модулем NFC (Samsung A5 в моем случае, я слышу тот же звук), но форма приложения (страница) остается прежней - нет информации о тегах (только ноль).Когда я закрыл приложение и снова запустил его, теги снова были прочитаны.Я попытался изменить метод startNFC (), который в моем случае выглядит следующим образом:

Future<void> startNFC() async {
    NfcData response;

    setState(() {
      _nfcData = NfcData();
      _nfcData.status = NFCStatus.reading;
    });

    print('NFC: Scan started');

    try {
      print('NFC: Scan readed NFC tag');
       Stream<NfcData> res = await FlutterNfcReader.read;
       if (res != null) { 
         response = await res.first;
       }
    } on PlatformException {
      print('NFC: Scan stopped exception');
    }
    setState(() {
      _nfcData = response;
    });
  }

Теперь я могу прочитать тег один раз после нажатия кнопки «Запустить NFC».Если я нажимаю кнопку Stop NFC и снова запускаю кнопку NFC, все работает нормально (одно чтение).Конечно, вы можете вызывать метод startNFC () программно и таким образом контролировать весь процесс чтения.Удачи!

...