Обычный текст поверх Android Beam

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

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

После отправки с L5 на N4 все, что я вижу, находится под новым собранным тегом: «текст/обычный». Я также попытался прочитать данные 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) предпочтительнее при отправке данных в виде обычного текста?


person Nait    schedule 16.04.2013    source источник


Ответы (1)


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

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

person NFC guy    schedule 16.04.2013
comment
Но должен ли MIME-один быть правильным, даже если NXP TagWriter не будет отображать его содержимое? - person Nait; 16.04.2013