If you need front-facing NFC reading capability on a device with a rear-facing reader, want a higher performance NFC reader than your device's built-in reader, or simply want to be able to read NFC tags on a device that has no on-board NFC reader, this app allows you to to leverage the TappyBLE line of Bluetooth® NFC readers or the TappyUSB USB-connected NFC readers without having to go through the effort of integrating with the full Tappy SDK.
In order to use the Tappy External NFC app, you first must use the app to search to connect to the Tappy NFC readers you wish to use. After that, the app will initiate polling and maintain the connection to the Tappy, reconnecting in the case of TappyBLE readers if the connection ever drops. For those use-cases that only require the Android device to launch URLs read from tag, you don't even need to do anything else as, as the Tappy External NFC app has this functionality built-in!
For more advanced uses, your app needs to register a BroadcastReceiver listening for intents with the action "com.taptrack.roaring.action.TAG_FOUND", "com.taptrack.roaring.action.NDEF_FOUND", or both. When the Tappy finds a tag, the app will broadcast one of these two Intents depending on whether or not the tag contains an NDEF message. Once received, the intent will contain NfcAdapter.EXTRA_ID containing the tag's binary serial number and, in the case of NDEF_FOUND, NfcAdapter.EXTRA_NDEF_MESSAGES just like the intents you would receive from an on-board NFC reader.
Note that this app is not compatible with UID-only TappyBLEs and requires at least version 1.4 of the BasicNFC command family. Additionally, the number of NFC readers you can connect to simultaneously can vary from device-to-device as well as between different Android versions.