从这里阅读HCE开发者指南HCE Developer's Guide似乎可以使用Android手机作为阅读器。我将卡信息放在NFC标签上,然后用手机读取。我想让手机充当读者。你知道这是否可能吗?我创建了一个示例项目,其中包含以下代码行:
import android.nfc.cardemulation.HostApduService;
import android.os.Bundle;
public class MyHostAPDUService extends HostApduService{
@Override
public byte[] processCommandApdu(byte[] apdu, Bundle extras) {
...
}
@Override
public void onDeactivated(int reason) {
...
}
}
我不知道接下来要去哪里。
答案 0 :(得分:-1)
我已经将手机用作读卡器,但采用了稍微不同的方法:
使用一个活动作为基础我创建了一个简单的读者应用程序,我在其中发送了一个选择,然后发送了一些后续的APDU到卡
private NfcAdapter mAdapter;
private PendingIntent mPendingIntent;
private String[][] mTechLists;
private IsoDep card;
onCreate(){
...
mAdapter = NfcAdapter.getDefaultAdapter(this);
mPendingIntent = pendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP),0);
mTechLists = new String[][]{new String[]{IsoDep.class.getName()},new String[]{IsoDep.class.getName()}};
...
}
onPause(){
mAdapter.disableForegroundDispatch(this);
}
onResume(){
mAdapter.enableForegroundDispatch(this,mPendingIntent,null,mTechLists);
}
onNewIntent(Intent intent){
Tag theTag = (Tag)intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
card = IsoDep.get(theTag);
...
card.connect();
...
byte[] response = card.transceive(apduBytes);
}
我没有做太多的工作,因为它只是一个概念证明,但我希望它有用。