2014-11-02 4 views
1

Это первый раз, я работаю с функцией NFC. Я столкнулся с проблемой кодирования сообщения NDEF.Как кодировать сообщение NDEF

мы попробовали 2 приложения для записи данных в тег NFC, имена NDEF and TagWriter. Я пишу свои данные в текстовый format.This является то, что мой данные

{name:myTag,tagDetails:{name:"myOrganization",addess:"xxxxx"}} 

То, что я понимаю, оба приложения кодируют и инъекционные данные в tag.The проблемы было во время чтения времени.

Как только я прочитал тег, я преобразовываю байты в строку, как nfcEvent.tag.ndefMessage[0].payload.

Что такое теги, написанные NDEF App, после преобразования точных данных, поступающих с тем, что я написал в тег. Проблема с TagWritter, после преобразования этих данных тегов она поступает в этом формате.

"en"{name:myTag,tagDetails:{name:"myOrganization",addess:"xxxxx"}}"" 

Что касается этого, я сделал некоторые исследования, что я нашел TagWritter App преобразования данных в формат UTF-8.

Я думаю, из-за этого это происходит. Возможно, я ошибаюсь.

как я могу решить эту проблему.

Примечание: Я использую Apache cordova для создания приложения для Android.

Спасибо.

ответ

0

Я видел документацию плагина, что я использую для чтения (chariotsolutions/phonegap-nfc). Они сами предлагают удалить ненужных персонажей. Поэтому мы должны написать код в формате.

nfc.bytesToString(nfcEvent.tag.ndefMessage[0].payload).substring(3); 

Это link, я видел

2

Если вы видите что-то вроде «ан» (на самом деле, не pritable символ + код языка) предваряется к данным, это говорит о том, что ваш тег писательницы приложение поместил текстовую строку в текстовую запись NFC Forum Text (вы можете получить спецификацию от NFC Forum's website).

Запись состоит из байт статуса, кода языка (в US-ASCII), за которым следует фактический текст. Верхний бит (b7) байта состояния указывает, закодирован ли текст в UTF-8 (b7 = 0) или UTF-16 (b7 = 1). Нижние 6 бит (b5..0) указывают длину кода языка в байтах.

До тех пор, пока код языка составляет 2 байта, ваше решение обрезки первых трех байтов будет работать.

Однако тип записи в формате NFC Forum специально предназначен для текста, пригодного для человека, и вам, вероятно, следует избегать его использования для хранения объектов JSON. Было бы лучше использовать запись внешнего типа NFC Forum (или пользовательскую запись типа MIME) для хранения ваших данных.

Смежные вопросы