我正在尝试开发一个在 Android(4.4)上通过 HCE 模拟信用卡的应用程序。我有一个可以从 NFC 贴纸读取的目标应用程序,现在我希望通过在我的设备上模拟 NFC 来实现相同的结果。该应用程序支持读取 ISO 14443-4 Type A/IsoDep,这很好,因为这是我正在模拟的。据我了解,应用程序读取的格式是:“B5105105105105100^CARDDATA^121222200000181000000,5105105105105100=121222200000181000000”(在此示例中,我使用 MC 测试卡编号)。目标是让目标应用程序接收我以正确格式发送的数据,但我还没有实现这一点。我试图检查其他示例,但很难找到它们,而且我的知识在这一点上有些有限。
我已经在我的 apduservice.xml 中设置了目标应用程序所需的 AID
现在的问题是如何将正确的数据发送到目标应用程序?我想同时发送 track1 "B5105105105105100^CARDDATA^121222200000181000000" 和 track2 "5105105105105100=121222200000181000000" 我是否需要通过 AID/PPSE 验证 apdu 部分而不是通过 apduservice 文件?
我试过以下没有成功:
代码:
public static String pan = "B5105105105105100^CARDDATA^121222200000181000000,5105105105105100=121222200000181000000";
@Override
public byte[] processCommandApdu(byte[] apdu, Bundle extras) {
byte[] response = new byte[] {};
return response = pan.getBytes();
}
我错过了什么?感谢您的任何建议。