所以,我做了一个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
});
}
之前感谢
答案 0 :(得分:1)
也许你遇到了charset编码问题。请尝试以下步骤来创建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);