【问题标题】:Select the NDEF record to read on an NDEF message?选择要读取 NDEF 消息的 NDEF 记录?
【发布时间】:2012-11-29 08:33:40
【问题描述】:

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

所以,*第一个应用程序(WriteNFC):我正在写入标签,一个涉及两个 NDEF 记录的 NDEF 消息:第一个记录是“文本”类型,第二个是“URL”输入。

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

总之,当我们扫描 NFC 标签时,使用我的应用程序 (ReadNFC),我们只能看到一个 URL (http://www.stackoverflow.com),而使用其他应用程序,我们只能看到一个文本 (你好,世界)。

【问题讨论】:

    标签: android tags nfc rfid ndef


    【解决方案1】:

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

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

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

    【讨论】:

    • 我使用 TNF_MIME_MEDIA 作为第一条记录,使用 TNF_EXTERNAL_TYPE 作为第二条记录。当我使用本机应用程序时,它仍然无法正常工作。我在第一个字段中有文本,在“未知标签类型”下方。我该如何隐藏它?
    • 你不能在 NDEF 中隐藏任何东西,你可以加密你的数据。
    • 当您说加密时,您的意思是显示“未知标签类型”之类的内容?
    • 错误更像是将加密数据放入未知记录中。这将阻止其他应用读取您的数据..
    • 能不能说的更清楚一些,请举个例子
    【解决方案2】:

    这是我在第一个应用程序(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) 阅读时,屏幕上当然只有第二条记录的有效负载,它是通过“记录类型”存储的。 但是对于第三方应用程序,尤其是本机安装的(“标签”),它会正确显示第一条记录,而第二条记录是一个空字段。 所以,它仍然不起作用,因为它仍然看到第二条记录

    【讨论】:

    • 当我使用 TNF_UNKNOWN 或 TNF_EXTERNAL_TYPE 时,它会像第二条记录一样显示“未知标签”!如何完全隐藏其他应用程序的第二条记录?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多