我已经开发了2个Android应用程序。第一个是写入NFC标签,第二个是读取我已经写入的内容。
因此,*第一个应用程序(WriteNFC):我在标记中写入一条包含两条NDEF记录的NDEF消息:第一条记录是“文本”类型,第二条记录是"URL“类型。
第二个应用程序(ReadNFC):我扫描标记,以便读取NDEF消息并显示它,但不是完整的。我只在屏幕上显示第二条记录(URL)。我想要做的是,当用户选择他安装的另一个android应用程序来阅读NFC标签时,这个应用程序应该只能显示第一条记录(文本),而不是第二条记录(URL)?
总之,当我们扫描一个NFC标签时,使用我的应用程序(ReadNFC),我们只能看到一个网址(http://www.stackoverflow.com),而对于其他应用程序,我们只能看到一个文本(Hello World)。
发布于 2012-11-29 21:05:54
这在使用标准NDEF文本和URI记录类型时是不可能的。
但您可以使用外部类型记录或未知记录创建自己的记录有效负载类型,只有您的应用程序才能使用它们。
也可以查看Android应用程序的记录。
发布于 2012-12-07 23:41:57
这是我在第一个应用程序(WriteNFC)中所做的
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)中的
NdefRecord cardRecord = msg.getRecords()[1];//Extract the second Record
String url_data = new String(cardRecord.getType());//Read data type结果:
当我使用我自己的应用程序(ReadNFC)阅读时,我的屏幕上当然只有第二条记录的有效载荷,它是我通过“记录类型”存储的。但是对于第三方应用程序,特别是本地安装的("tag"),它会正确地显示第一条记录,而第二条记录是一个空字段。因此,它仍然不工作,因为它仍然看到第二条记录

https://stackoverflow.com/questions/13621692
复制相似问题