【发布时间】:2018-01-27 16:12:32
【问题描述】:
我想向用户显示公共交通卡的ID(IsoDep,NfcB),我用下面的guide成功地做到了。
现在我正在尝试使用以下guide 使用 Host Card Emulation 来模拟卡。
我使用以下代码创建了一个名为 MyHosApduService.java 的新类:
public class MyHostApduService extends HostApduService {
@Override
public byte[] processCommandApdu(byte[] apdu, Bundle extras) {
...
}
@Override
public void onDeactivated(int reason) {
...
}
}
使用以下代码在AndroidManifest.xml 声明服务:
<service android:name=".MyHostApduService" 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/apduservice"/>
</service>
还有apduservice.xml,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/servicedesc"
android:requireDeviceUnlock="false">
<aid-group android:description="@string/aiddescription"
android:category="other">
<aid-filter android:name="0x00DDA611"/>
</aid-group>
</host-apdu-service>
从这里,如何将正确的数据发送到服务并正确触发服务?
【问题讨论】:
标签: android nfc apdu contactless-smartcard hce