flutter nfc插件仅扫描一次

时间:2019-03-09 20:21:48

标签: android dart flutter nfc

我是新手。我正在使用此nfc plugin在android应用中读取nfc标签。目前,当我打开我的应用程序时,我可以扫描一次标签。但是,如果我尝试扫描多个标签,则不会读取任何内容。 Here是我从插件示例中使用的示例代码。 任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

我对这段代码有类似的问题(如果我错了,请纠正我,但是这似乎是软件包说明中的示例)。就我而言,我可以在启动应用程序之后和开始读取标签(“开始NFC”按钮)之后读取许多标签。但是在按下“停止NFC”按钮并再次按下“启动NFC”按钮后,应用无法读取,也不会显示标签。我认为标签是由nfc模块读取的(在我的情况下为三星A5,我可以听到相同的声音),但应用程序表单(页面)保持不变-没有标签信息(仅null)。当我关闭一个应用程序并重新启动时,再次读取了标签。我尝试更改一些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按钮后,我可以读取一次标签。如果我点击“停止NFC”按钮,然后再次点击“启动NFC”按钮,则一切正常(一次读取)。当然,您可以通过编程方式调用startNFC()方法,并以此方式控制整个读取过程。祝你好运!