【问题标题】:Picture on NFC tagsNFC 标签上的图片
【发布时间】:2014-05-11 08:13:02
【问题描述】:

使用最新的 NFC 标签,可以存储多达 8k 的数据。 所以我想知道如何在标签上存储图片,比如 NXP TagWriter 应用程序。

我没有找到有关它的信息。谁能解释一下怎么做?

【问题讨论】:

    标签: java android tags nfc ndef


    【解决方案1】:

    您可以使用 MIME 类型的记录将图像存储在 NFC 标签上。例如,如果您的图像是 JPEG 图像,您将使用 MIME 类型“image/jpeg”。您的 NDEF 记录可能如下所示:

    +----------------------------------------+
    + MB=1, ME=1, CF=0, SR=0, IL=0, TNF=MIME +
    +----------------------------------------+
    + Type Length = 10                       +
    +----------------------------------------+
    + Payload Length = N                     +
    +----------------------------------------+
    + image/jpeg                             +
    +----------------------------------------+
    + <Your image data (N bytes)>            +
    +----------------------------------------+
    

    在 Android 上,您可以使用

    创建这样的记录
    byte[] myImage = ...;
    NdefRecord myImageRecord = NdefRecord.createMime("image/jpeg", myImage);
    

    或者使用NdefRecord的构造函数:

    byte[] myImage = ...;
    NdefRecord myImageRecord = new NdefRecord(
            NdefRecord.TNF_MIME_MEDIA,
            "image/jpeg".getBytes("US-ASCII"),
            null,
            myImage
    );
    

    一旦您拥有 NDEF 标签的 Tag 句柄(即通过接收和 NFC 发现意图),您就可以将 NDEF 记录写入标签:

    NdefMessage ndefMsg = new NdefMessage(new NdefRecord[] { myImageRecord });
    
    Tag tag = ...;
    Ndef ndefTag = Ndef.get(tag);
    if (ndefTag != null) {
        ndefTag.connect();
        ndefTag.writeNdefMessage(ndefMsg);
        ndefTag.close();
    } else {
        NdefFormatable ndefFormatable = NdefFormatable.get(tag);
        if (ndefFormatable != null) {
            ndefFormatable.connect();
            ndefFormatable.format(ndefMsg);
            ndefFormatable.close();
        }
    }
    

    【讨论】:

    • 太棒了,它就像一个魅力。不知道这种记录方式。我搜索比转换为字符串更好的方法。你给了它:-) 非常感谢
    • @Michael Roland : 完成 :-)
    • @All :一旦保存在 nfc 上,我需要阅读它。我可以阅读文本,但现在可以阅读图像。有谁知道 ? (我使用了 ndefRecord)
    • @StéphaneGROSSMANN 理论上,如果没有没有其他应用为图像/* MIME 类型(或任何您的 NDEF 中的第一条记录)注册,Android 的默认标签应用应该处理图像消息是)。虽然我从未测试过 Android 是否真的在标签应用程序中显示图像。除此之外,您需要创建自己的图像查看器应用程序,该应用程序(可选)注册图像/jpeg MIME 类型,然后将记录的有效负载加载到例如一个 ImageView 小部件。
    • 谢谢,我明白了:见下文@All:这篇文章:stackoverflow.com/questions/15945545/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    相关资源
    最近更新 更多