2013-04-16 5 views
0

Я разрабатываю приложение для Android с minSdk = 14 и targetSdk = 17. Я хочу, чтобы приложение использовало Android Beam для отправки текстовой строки с телефона на NFC-ридер. У меня еще нет читателя, и я пытаюсь использовать простые текстовые данные с одного устройства Android на другое (у меня есть Nexus 4 с 4.2.2 и LG Optimus L5, работающий 4.0.3).Обычный текст над Android Beam

Я нашел два способа отправки текстовых данных, первый - использовать TNF_WELL_KNOWN и RTD_TEXT в качестве типа, а другой - использовать TNF_MIME_MEDIA и text/plain в качестве типа.

После отправки с L5 на N4, все, что я вижу, находится под новым тегом, собранным «text/plain». Я также попытался прочитать данные Beam с помощью NXP TagWriter, это то, что я получил при использовании RTD_TEXT http://i.imgur.com/0qbAwld.png, и это при использовании текстового/простого MIME http://i.imgur.com/bz9RxuI.png.

Это код при использовании RTD_TEXT

 NdefRecord[] records = { 
       new NdefRecord(NdefRecord.TNF_WELL_KNOWN, 
         NdefRecord.RTD_TEXT, 
         new byte[0], 
         "testing".getBytes()) 
     }; 
     NdefMessage msg = new NdefMessage(records); 
     adapter.setNdefPushMessage(msg, this); 

Это код при использовании текста/MIME равнину

 NdefRecord[] records = { 
       new NdefRecord(NdefRecord.TNF_MIME_MEDIA, 
         "text/plain".getBytes(), 
         new byte[0], 
         "testing".getBytes()) 
     }; 
     NdefMessage msg = new NdefMessage(records); 
     adapter.setNdefPushMessage(msg, this); 

Как правильно создать NdefRecord? Или он работает, как предполагалось, только то, что полезная нагрузка не отображается на другом телефоне? Какой из этих двух методов (RTD_TEXT и MIME) предпочтительнее при отправке текстовых данных?

ответ

0

RTD_TEXT записи сопоставляются с текстом «plain/plain» типа MIME для фильтрации намерений. То есть: фильтр намерений для «text/plain» будет соответствовать типу записей. Поэтому для этого не имеет значения, какой тип вы используете.

Полезная нагрузка в записи RTD_TEXT немного сложнее, чем текстовый/простой текст в формате MIME. Он должен содержать информацию об используемом кодировании и языке содержимого, см. Спецификацию, доступную по адресу http://www.nfc-forum.org/specs/spec_list/. (Таким образом, вы создали неправильную запись RTD_TEXT.)

+0

Но должен ли MIME-1 быть правильным, даже если NXP TagWriter не будет отображать его содержимое? – Nait

+0

Мне все хорошо. –

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