#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 нечего идентифицировать как не пустой тег.