因此,我做了一个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
});
}
之前感谢
最佳答案
也许您遇到了字符集编码问题。请尝试以下操作来创建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);