/flutter-nfc-manager

Flutter plugin for accessing the NFC features on Android and iOS.

Primary LanguageDartMIT LicenseMIT

nfc_manager

Flutter plugin for accessing the NFC features on Android and iOS.

Note: This plugin depends on NFCTagReaderSession on iOS and NfcAdapter#enableReaderMode on Android, so it requires iOS 13.0 or later or Android API level 19 or later.

Setup

Android Setup

iOS Setup

Usage

Handling Session

// Check availability
bool isAvailable = await NfcManager.instance.isAvailable();

// Start Session
NfcManager.instance.startSession(onDiscovered(NfcTag tag) async {
  // Handling Tag
});

// Stop Session
NfcManager.instance.stopSession();

Handling Platform Tag

The following platform-tag-classes are available:

  • Ndef
  • FeliCa (iOS only)
  • Iso7816 (iOS only)
  • Iso15693 (iOS only)
  • MiFare (iOS only)
  • NfcA (Android only)
  • NfcB (Android only)
  • NfcF (Android only)
  • NfcV (Android only)
  • IsoDep (Android only)
  • MifareClassic (Android only)
  • MifareUtralight (Android only)
  • NdefFormatable (Android only)

Obtain an instance by calling the factory constructor from() on the class. For example:

Ndef ndef = Ndef.from(tag);

if (ndef == null) {
  print('Tag is not compatible with NDEF');
  return;
}

// Do something with an Ndef instance

For more information, please see the API Doc.

Real-World-App

See this repo which is a Real-World-App demonstrates how to use this plugin.