readNFCTag method
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;
}