Написание тегов NFC с помощью Nexus S

У меня есть Gingerbread 2.3.4 powered Nexus S, и я недавно получил несколько доступных для записи NFC. Пока я могу читать их как пустые теги, но я не мог найти способ их записи. Все мои исследования привели меня к этой статье: Написание тегов с Nexus S с января (до выпуска 2.3.4).

Как вы пишете теги NFC внутри своего приложения, используя Nexus S? Любые указатели?

Ответ 1

Я нашел текст API NFC Android, и dev руководство немного сложно, так что пример кода может помочь здесь. Это фактически порт MIDP-кода, который я использовал в устройствах Nokia 6212, поэтому я, вероятно, до сих пор не понял все о Android NFC API правильно, но, по крайней мере, это сработало для меня.

Сначала мы создаем запись NDEF:

private NdefRecord createRecord() throws UnsupportedEncodingException {
    String text       = "Hello, World!";
    String lang       = "en";
    byte[] textBytes  = text.getBytes();
    byte[] langBytes  = lang.getBytes("US-ASCII");
    int    langLength = langBytes.length;
    int    textLength = textBytes.length;
    byte[] payload    = new byte[1 + langLength + textLength];

    // set status byte (see NDEF spec for actual bits)
    payload[0] = (byte) langLength;

    // copy langbytes and textbytes into payload
    System.arraycopy(langBytes, 0, payload, 1,              langLength);
    System.arraycopy(textBytes, 0, payload, 1 + langLength, textLength);

    NdefRecord record = new NdefRecord(NdefRecord.TNF_WELL_KNOWN, 
                                       NdefRecord.RTD_TEXT, 
                                       new byte[0], 
                                       payload);

    return record;
}

Затем мы записываем запись как сообщение NDEF:

private void write(Tag tag) throws IOException, FormatException {
    NdefRecord[] records = { createRecord() };
    NdefMessage  message = new NdefMessage(records);

    // Get an instance of Ndef for the tag.
    Ndef ndef = Ndef.get(tag);

    // Enable I/O
    ndef.connect();

    // Write the message
    ndef.writeNdefMessage(message);

    // Close the connection
    ndef.close();
}

Чтобы записать в тег, вам явно нужен объект Tag, который вы можете получить из Intent.

Ответ 2

Возможно, я немного опаздываю здесь, но я написал library для создания, чтения и записи записей NDEF, которые могут оказаться полезными,

Как вы могли бы узнать, родные классы Android NdefMessage и NdefRecord - это только байтовые массивы байтов, и поэтому, хотя стандарт NDEF достаточно хорошо определен в стандартах форума NFC, в настоящее время нет надлежащей поддержки на высоком уровне в Android.

Проект также включает операции чтения, записи и отображения шаблонов: -)

Ответ 3

Эта статья из руководства Android Dev может помочь вам: Запись в тег NFC?

Ответ 5

NXP, создатель многих совместимых с NFC чипов, создает бесплатное приложение с закрытым исходным кодом для управления тегами NFC. Я написал с ним несколько тегов.

Смотрите: Приложение NXP NFC Tagwriter

https://market.android.com/details?id=com.nxp.nfc.tagwriter

Если вы хотите написать код, чтобы сделать это, ссылка inazaruk поможет, или вы можете попробовать онлайн-книгу O'Reilly "Программирование Android". Он имеет секцию NFC:

http://programming-android.labs.oreilly.com/ch16.html#ch18_id316624

Это не самая большая книга - я нахожу ее слишком плотной, а некоторые части плохо написаны, но ее секция NFC и образцы кода - это единственное, что я действительно видел на сегодняшний день отдельно от Android.

Ответ 6

Чтобы записать данные NDEF, вы можете использовать API Ndef.writeNdefMessage().

Если вы хотите писать данные, отличные от NDEF, тогда вы можете использовать низкоуровневый приемопередающий API, такой как NfcA.transceive(), NfcB.transceive() или IsoDep.transceive(). Вам нужно будет иметь расширенные знания тега, с которым вы общаетесь, и его команды/ответы. Я не рекомендую это.

NDEF является стандартным форматом данных и может быть легко прочитан Android и другими платформами NFC.

http://developer.android.com/reference/android/nfc/tech/Ndef.html#writeNdefMessage(android.nfc.NdefMessage)

Ответ 9

NXP tagwriter - отличное приложение для написания тегов.

Моя компания, которая имеет приложение для кодирования и управления тегами в облаке, недавно провела семинар в Сиэтле, который запустил разработчиков через процесс чтения и записи тегов NFC в Android.

Сообщения блога для чтение и запись NFC-теги пройдите по коду и поддерживайте видеоклипы из фактической мастерской.

Надеюсь, это поможет некоторым разработчикам начать работу с NFC!