首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择要在NDEF消息上读取的NDEF记录?

选择要在NDEF消息上读取的NDEF记录?
EN

Stack Overflow用户
提问于 2012-11-29 16:33:41
回答 2查看 2.4K关注 0票数 0

我已经开发了2个Android应用程序。第一个是写入NFC标签,第二个是读取我已经写入的内容。

因此,*第一个应用程序(WriteNFC):我在标记中写入一条包含两条NDEF记录的NDEF消息:第一条记录是“文本”类型,第二条记录是"URL“类型。

第二个应用程序(ReadNFC):我扫描标记,以便读取NDEF消息并显示它,但不是完整的。我只在屏幕上显示第二条记录(URL)。我想要做的是,当用户选择他安装的另一个android应用程序来阅读NFC标签时,这个应用程序应该只能显示第一条记录(文本),而不是第二条记录(URL)?

总之,当我们扫描一个NFC标签时,使用我的应用程序(ReadNFC),我们只能看到一个网址(http://www.stackoverflow.com),而对于其他应用程序,我们只能看到一个文本(Hello World)。

EN

回答 2

Stack Overflow用户

发布于 2012-11-29 21:05:54

这在使用标准NDEF文本和URI记录类型时是不可能的。

但您可以使用外部类型记录或未知记录创建自己的记录有效负载类型,只有您的应用程序才能使用它们。

也可以查看Android应用程序的记录。

票数 1
EN

Stack Overflow用户

发布于 2012-12-07 23:41:57

这是我在第一个应用程序(WriteNFC)中所做的

代码语言:javascript
复制
private NdefRecord createRecord1(String data)
{  
   byte[] payload = data.getBytes(Charset.forName("UTF-8"));
   byte[] empty = new byte[] {};
   return new NdefRecord(NdefRecord.TNF_ABSOLUTE_URI, empty, empty, payload);
}
private NdefRecord createRecord2(String data)
{  
   byte[] payload = data.getBytes(Charset.forName("UTF-8"));
   byte[] empty = new byte[] {};
   return new NdefRecord(NdefRecord.TNF_ABSOLUTE_URI, payload, empty, empty);
}

和在第二个应用程序(ReadNFC)中的

代码语言:javascript
复制
NdefRecord cardRecord = msg.getRecords()[1];//Extract the second Record
String url_data = new String(cardRecord.getType());//Read data type

结果:

当我使用我自己的应用程序(ReadNFC)阅读时,我的屏幕上当然只有第二条记录的有效载荷,它是我通过“记录类型”存储的。但是对于第三方应用程序,特别是本地安装的("tag"),它会正确地显示第一条记录,而第二条记录是一个空字段。因此,它仍然不工作,因为它仍然看到第二条记录

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

https://stackoverflow.com/questions/13621692

复制
相关文章

相似问题

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