Adding support for more tag types
Currently nfc_in_flutter only supports tags that support the NDEF specification. There have been numerous requests for better tag support (#18, #12, #14). Having support for accessing the tag directly would also allow for retrieving the ID of the tag on iOS (#35, #7).
This issue will be a plan for implementing support for interacting directly with the tags themself.
All work will be done on the tags branch. The tags branch should be considered unstable and should not be used in production.
Features and to-do list
nfc_in_flutter.dart library
APIs for both Android and iOS
- [ ] Add
ISO15693Tagclass with methods matching Core NFC's - [ ] Add
readISO15693function - [ ] Add
MiFareTagclass - [ ] Add
readMiFarefunction
These APIs will be high level to match Core NFC's APIs
android.dart library
The android.dart library will contain classes and functions mapped to the Android NFC APIs.
- [ ] Add
NfcAsupport -
- [x] Add
NFCAclass (rename toNFCATag)
- [x] Add
-
- [x] Add
readNFCAfunction
- [x] Add
-
- [ ] Stablise
- [ ] Add
NfcBsupport -
- [ ] Add
NFCBTagclass
- [ ] Add
-
- [ ] Add
readNFCBfunction
- [ ] Add
- [ ] Add
NfcVsupport -
- [ ] Add
NFCVTagclass
- [ ] Add
-
- [ ] Add
readNFCVfunction
- [ ] Add
- [ ] Add
NfcFsupport -
- [ ] Add
NFCFTag
- [ ] Add
-
- [ ] Add
readNFCFfunction
- [ ] Add
- [ ] Add
IsoDepsupport -
- [x] Add
IsoDepclass (rename toISODEPTagorIsoDepTag)
- [x] Add
-
- [x] Add
readIsoDepfunction (possibly rename toreadISODEP)
- [x] Add
-
- [ ] Stablise
Note that NfcA and IsoDep APIs are unfinished
ios.dart library
The ios.dart library will contain classes and functions mapped to the Core NFC APIs.
To-dooOooOooOoooOoooooOOOoooo
Implementation plan
- Finish the
NfcAandIsoDepAPIs in theandroid.dartlibrary - iOS: Add option to prefer
NFCTagReaderSessioninreadNDEF- [x] Add the IDs of the tags to the NDEF message
- Remember to add documentation on how to enable
NFCTagReaderSession
- To be decided
This issue may be updated at any time.
Work on this will begin shortly because I have finally figured out how to enable the NFCTagReaderSession class on iOS. This shall never be spoken about ever again.