Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/okadan/flutter-nfc-manager
A Flutter plugin for accessing the NFC features on Android and iOS.
https://github.com/okadan/flutter-nfc-manager
dart flutter flutter-plugin nfc
Last synced: 3 days ago
JSON representation
A Flutter plugin for accessing the NFC features on Android and iOS.
- Host: GitHub
- URL: https://github.com/okadan/flutter-nfc-manager
- Owner: okadan
- License: mit
- Created: 2019-09-22T06:48:30.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-08-15T07:06:37.000Z (5 months ago)
- Last Synced: 2024-12-28T23:29:27.261Z (10 days ago)
- Topics: dart, flutter, flutter-plugin, nfc
- Language: Dart
- Homepage: https://pub.dev/packages/nfc_manager
- Size: 292 KB
- Stars: 213
- Watchers: 9
- Forks: 138
- Open Issues: 124
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# nfc_manager
Flutter plugin for accessing the NFC features on Android and iOS.
Note: This plugin depends on `NFCTagReaderSession` (requires iOS 13.0 or later) and `NfcAdapter#enableReaderMode` (requires Android API level 19 or later).
## Setup
**Android Setup**
* Add [android.permission.NFC](https://developer.android.com/reference/android/Manifest.permission.html#NFC) to your `AndroidManifest.xml`.
**iOS Setup**
* Add [Near Field Communication Tag Reader Session Formats Entitlements](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_nfc_readersession_formats) to your entitlements.
* Add [NFCReaderUsageDescription](https://developer.apple.com/documentation/bundleresources/information_property_list/nfcreaderusagedescription) to your `Info.plist`.
* Add [com.apple.developer.nfc.readersession.felica.systemcodes](https://developer.apple.com/documentation/bundleresources/information_property_list/systemcodes) and [com.apple.developer.nfc.readersession.iso7816.select-identifiers](https://developer.apple.com/documentation/bundleresources/information_property_list/select-identifiers) to your `Info.plist` as needed.
## Usage
**Handling Session**
```dart
// Check availability
bool isAvailable = await NfcManager.instance.isAvailable();// Start Session
NfcManager.instance.startSession(
onDiscovered: (NfcTag tag) async {
// Do something with an NfcTag instance.
},
);// 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:
```dart
Ndef? ndef = Ndef.from(tag);if (ndef == null) {
print('Tag is not compatible with NDEF');
return;
}// Do something with an Ndef instance
```Please see the [API Doc](https://pub.dev/documentation/nfc_manager/latest/) for more details.
## Real-World-App
See [this repo](https://github.com/okadan/flutter-nfc-manager-app) which is a Real-World-App demonstrates how to use this plugin.