【发布时间】:2014-04-04 12:28:10
【问题描述】:
我正在 Arduino Uno 上的 PN532 与运行 Kitkat 4.4.2 的 Nexus 7 之间进行通信,
我从这里获得的 HCE 计划:
https://github.com/grundid/host-card-emulation-sample
我在 Nexus 7 上运行示例程序,并在 Arduino 上尝试发送 APDU 命令:
uint8_t PN532::APDU ()
{
uint8_t message[] = {
0x00, /* CLA */
0xA4, /* INS */
0x04, /* P1 */
0x00, /* P2 */
0x07, /* Lc */
0xF0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
0x00 /* Le */ };
/* Prepare the first command */
/* Send the command */
if (HAL(writeCommand)(message, 13)) {
Serial.println(F("Go here 1"));
return 0;
}
Serial.println(F("Go here 2"));
/* Read the response packet */
return (0 < HAL(readResponse)(message, sizeof(message)));}
这是我的 APDU 服务文件:apduservice.html
<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/servicedesc"
android:requireDeviceUnlock="false" >
<aid-group
android:category="other"
android:description="@string/aiddescription" >
<aid-filter android:name="F0010203040506" />
</aid-group>
但我无法从 Nexus 7 得到任何响应,并且从 Nexus 7 我也没有记录任何信号?有谁知道我在这里想念什么?谢谢
【问题讨论】:
-
你在 Arduino 端使用什么库? writeCommand 和 readResponse 在做什么? PN532 是如何在发送这些命令之前激活 HCE 手机的?
-
这是我得到的库:
<https://github.com/don/Ndef> and <https://github.com/Seeed-Studio/PN532>writeCommand 是将消息缓冲区推送到其他设备,而 readResponse 是接收响应。要激活 HCE 手机,如果我尝试推送 A4 1 0 则手机响应随机 UID,但是当我运行 Hcedemo 程序时,它没有响应,所以我停止推送 A4 1 0,并推送上面的消息。
标签: android arduino nfc apdu hce