react-native-nfc-hce
Inspired by android-CardEmulation
🌟🔥Only supported Android !🔥🌟
Requisites
- Android (API 19+)
- Android SDK 27
- Android Build Tools v27.0.2
Getting started
$ npm install react-native-nfc-hce --save
Mostly automatic installation
$ react-native link react-native-nfc-hce
Manual installation
Android
- Open up
android/app/src/main/java/[...]/MainActivity.java
- Add
import studio.bb.rnlib.RNHcePackage;
to the imports at the top of the file - Add
new RNHcePackage()
to the list returned by thegetPackages()
method
- Append the following lines to
android/settings.gradle
:include ':react-native-hce' project(':react-native-hce').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-hce/android')
- Insert the following lines inside the dependencies block in
android/app/build.gradle
:compile project(':react-native-hce')
Setup
- Open up
android/app/src/main/AndroidManifest.xml
- Add
<uses-permission android:name="android.permission.NFC" />
- Add
<service android:name="studio.bb.rnlib.CardService" android:exported="true" android:permission="android.permission.BIND_NFC_SERVICE"> <intent-filter> <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE" /> </intent-filter> <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/aid_list" /> </service>
- Create
aid_list.xml
inandroid/app/src/main/res/xml/
- Add code in
aid_list.xml
The aid need to customize
- Edit AID in
react-native-nfc-hce/android/src/main/java/studio/bb/rnlib/CardService.java
public class CardService extends HostApduService { private static final String TAG = "CardService"; private static final String AID = "F201808175";
Usage
; { const support enabled = HCE; HCE;}; { if textlength > 0 HCE; };
supportNFC()
Get NFC supported and enabled
listenNFCStatus(enabled:boolean)
Listen NFC enabled status
setCardContent(content:string)
Write CardEmulation content