Могу ли я получить намерение NDEF_DISCOVERED после написания пустого сообщения NDEF?

#android #nfc #iso #ndef

#Android #nfc #iso #ndef

Вопрос:

Я разрабатываю приложение для Android, касающееся тегов NFC. Когда я записываю пустое сообщение NdefMessage в тег NFC с использованием IsoDep и APDU, смогу ли я тогда, когда получу новое намерение, получить намерение NDEF_DISCOVERED?

На данный момент я бы просто получил намерение ACTION_TECH, и мне интересно, является ли написанный APDU неправильным или NDEF_DISCOVERED просто невозможен, когда было написано пустое сообщение NDEFMESSAGE.

Ответ №1:

На самом деле не существует такого понятия, как пустой NdefMessage и NdefMessage действительно просто массив правильно отформатированных NdefRecords

Если вы прочитали спецификацию NDef https://github.com/haldean/ndef/blob/master/docs/NFCForum-TS-NDEF_1.0.pdf

Сообщение — это просто серия записей Ndef, в первой из которых установлен флаг записи «Начало сообщения», а в последней установлен флаг записи «Конец сообщения».

Если вы посмотрите исходный код Android https://android.googlesource.com/platform/frameworks/base/ /master/core/java/android/nfc/NdefMessage.java#63

если у вас нулевые записи в массиве, тогда значение NdefMessage равно нулю.

Итак, вы записываете нулевые байты в тег, системному приложению Android NFC нечего идентифицировать как не пустой тег.