首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用HCE Android的NDEF消息

使用HCE Android的NDEF消息
EN

Stack Overflow用户
提问于 2015-03-18 21:03:14
回答 2查看 5.8K关注 0票数 4

我想用Android的HCE功能来模拟一个主机卡。为此,我扩展了服务类HostApduService并覆盖了以下方法:

代码语言:javascript
运行
复制
 public byte[] processCommandApdu(byte[] commandApdu, Bundle extras) {
    if (Arrays.equals(SELECT_APDU, commandApdu)) {
        NdefMessage message = new NdefMessage(new NdefRecord  [] {NdefRecord.createTextRecord("en", "test"});
       return message.toByteArray();
    } else {
        return UNKNOWN_CMD_SW;
    }
}

利用第二设备,可以从HCE服务接收数据。问题是我总是收到"Type A“标签,但我需要一个NDEF消息。

有人能帮我吗?

EN

回答 2

Stack Overflow用户

发布于 2018-12-06 05:59:55

对于任何坚持这个问题的人,我读过@Michael Roland提出的NFCForum-TS-Type-4-Tag。整个想法是正确的。您所需要做的就是模拟发送和接收命令的过程,将字节数组转换为NDEF消息。我创建了两个存储库,一个总结了整个包中关于将string转换为NDEF message的内容,另一个是验证Android HCE是否正确的iOS Reader NDEF TAG

所以祝你好运!

票数 9
EN

Stack Overflow用户

发布于 2015-03-19 00:38:17

使用Android HCE模拟被检测为NDEF标签的标签并不像发送NDEF消息以响应SELECT APDU那么简单。您需要实现NFC论坛类型4标签操作规范。您可以从NFC Forum website获得该规范。

基本上,您需要为AID D2760000850101注册一个HCE服务,该服务实现了阅读器端用来访问Type4标签的几个APDU命令:

  • 选择NDEF标签应用程序

00 A4 04 00 07 D2760000850101 00

  • 选择功能容器

00 A4 00 0C 02 E103

  • 选择NDEF数据文件

00 A4 00 0C 02 xxyy

其中,xxyy是在能力容器二进制文件中指定的NDEF数据文件的文件ID (用于从能力容器或NDEF数据文件中读取数据,以当前选定的为准)

00 B0 xx yy zz

其中xx yy是要读取的偏移量,zz是要读取的字节数。

重要提示:请注意,Android设备模拟的这种NFC论坛类型4标签不能用于在第二个Android设备上自动触发应用程序(至少不可靠?)。将两个Android设备放在一起通常会导致它们建立点对点链接(即使光束被关闭!)。只有第二个Android设备上的前台应用程序可以使用NFC Reader模式API绕过Android光束,并可靠地检测模拟的标签。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29122848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档