readNFCTag method

Future<String?> readNFCTag(
  1. NFCTag tag
)

Implementation

Future<String?> readNFCTag(NFCTag tag) async {
  try {
    await FlutterNfcKit.setIosAlertMessage("Working on it...");
    if (tag.type == NFCTagType.iso15693) {
      var ndefRecords = await FlutterNfcKit.readNDEFRecords();
      var ndefString = ndefRecords
          .map((r) => r.toString())
          .reduce((value, element) => "$value\n$element");
      return ndefString;
    } else if (tag.standard == "ISO 14443-4 (Type B)") {
      String result1 = await FlutterNfcKit.transceive("00B0950000");
      String result2 =
          await FlutterNfcKit.transceive("00A4040009A00000000386980701");
      return '$result1 $result2';
    } else if (tag.type == NFCTagType.iso18092) {
      return await FlutterNfcKit.transceive("060080080100");
    } else if (tag.type == NFCTagType.mifare_ultralight ||
        tag.type == NFCTagType.mifare_classic) {
      var ndefRecords = await FlutterNfcKit.readNDEFRecords();
      var ndefString = ndefRecords
          .map((r) => r.toString())
          .reduce((value, element) => "$value\n$element");
      return ndefString;
    } else if (tag.type == NFCTagType.webusb) {
      return await FlutterNfcKit.transceive("00A4040006D27600012401");
    }
  } catch (e) {
    Log().exception(e, caller: 'nfc.dart: Reader.readNFCTag()');
    return null;
  }
  Log().debug('Unhandled NFC tag type');
  Log().warning('Unhandled NFC tag type',
      caller: 'nfc.dart: Reader.readNFCTag()');
  return null;
}