【问题标题】:My text writer can't be read by my NFC reader我的 NFC 阅读器无法读取我的文本编写器
【发布时间】:2013-07-02 17:27:52
【问题描述】:

所以,我做了一个 NFC 项目,但是当我在标签上写文本时,我的阅读器无法读取它,我的格式有什么问题吗?

这是文本编写器格式代码:

private NdefMessage getNoteAsNdef() {

    byte[] textBytes = mNote.getText().toString().getBytes();


    NdefRecord textRecord = new NdefRecord(NdefRecord.TNF_MIME_MEDIA, "text/plain".getBytes(),
            new byte[0] , textBytes);
    return new NdefMessage(new NdefRecord[] {
        textRecord
    });
}

感谢之前

【问题讨论】:

    标签: android eclipse text nfc writer


    【解决方案1】:

    也许您遇到了字符集编码问题。请尝试以下方法来创建您的 NdefRecord:

    byte[] textBytes = mNote.getText().toString().getBytes(Charset.forName("US-ASCII"));
    new NdefRecord(NdefRecord.TNF_MIME_MEDIA, "text/plain".getBytes(Charset.forName("US-ASCII")), new byte[0], textBytes);
    

    要创建文本标签,您还可以使用以下内容:

    byte[] textBytes = mNote.getText().getBytes();
    byte[] textPayload = new byte[textBytes.length + 3];
    textPayload[0] = 0x02; // 0x02 = UTF8
    textPayload[1] = 'e'; // Language = en
    textPayload[2] = 'n';
    System.arraycopy(textBytes, 0, textPayload, 3, textBytes.length);
    NdefRecord record = new NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_TEXT, new byte[0], textPayload);
    

    【讨论】:

    • 不,它不起作用,我不明白?是我的读者吗?但它可以毫无问题地读取网址和联系方式
    • 我的读者能读到的内容是这样的 WELL-KNOWN: urn:nfc:wkt:T (Text) Encoding UTF-8 Language: en 但我不知道如何做到这一点
    • 我刚刚添加的第二个选项应该可以为您解决问题
    • 我为像你这样的开发者提供了code.google.com/p/ndef-tools-for-android,试试吧!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    相关资源
    最近更新 更多