Yet another plugin to provide NFC functionality on Android and iOS.
This plugin supports:
- read metadata of tags / cards complying with:
- ISO 14443-4 Type A & Type B (NFC-A / NFC-B / Mifare Classic / Mifare Plus / Mifare Ultralight / Mifare Desfire)
- ISO 18092 (NFC-F / Felica)
- ISO 15963 (NFC-V)
- China ID Card (non-standard, GUID only)
- transceive APDU with smart cards complying with ISO 7816
Note that due to API limitations not all operations are supported on both platforms.
Thank nfc_manager plugin for these instructions.
- Add android.permission.NFC to your
AndroidManifest.xml
.
-
Add Near Field Communication Tag Reader Session Formats Entitlements to your entitlements.
-
Add NFCReaderUsageDescription to your
Info.plist
. -
Add com.apple.developer.nfc.readersession.felica.systemcodes and com.apple.developer.nfc.readersession.iso7816.select-identifiers to your
Info.plist
as needed.
Simple example:
import 'package:flutter_nfc_kit/flutter_nfc_kit.dart';
var availability = await FlutterNfcKit.nfcAvailability;
if (availability != NFCAvailability.available) {
// oh-no
}
var tag = await FlutterNfcKit.poll();
print(jsonEncode(tag));
if (tag.type == NFCTagType.iso7816) {
var result = await FlutterNfcKit.transceive("00B0950000");
print(result);
}
await FlutterNfcKit.finish();
A more complicated example can be seen in example
dir.
Refer to the documentation for more information.
We use error codes with similar meaning as HTTP status code. Brief explanation and error cause in string (if available) will also be returned when an error occurs.