flutter_nfc_kit 0.0.5
flutter_nfc_kit: ^0.0.5 copied to clipboard
Plugin to provide NFC functionality on Android and iOS, including reading metadata and transceive APDU with NFC tags / cards
Flutter NFC Kit #
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.
Setup #
Thank nfc_manager plugin for these instructions.
Android #
- Add android.permission.NFC to your
AndroidManifest.xml
.
iOS #
-
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.
Usage #
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.
Error codes #
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.