Да, многие типы тегов допускают защиту от записи, некоторые глобально и другие, более сложные, по разделу памяти внутри тега.
Когда вы обнаружите свой тег в приложении NFC для Android, вы сможете получить объект Tag, а также прочитать и записать этот тег, в том числе защитить его от дальнейшей записи.
Все это описано в документации для разработчиков классов NFC на сайте разработчиков Android.
Например, если вы работаете на более высоком уровне и читаете / пишете Ndef
сообщения:
Установите фильтр намерений (в коде или манифесте), чтобы вы могли обнаружить теги Ndef
или NDefFormatable
. Вы можете получить объект Tag
из переданного вам Intent
(в onCreate()
или onNewIntent()
).
Tag tag = intent.getParcelableExtra( NfcAdapter.EXTRA_TAG );
Из вашего Tag
попытайтесь получить объект тега Ndef
из намерения.
Если вы успешно получили объект Ndef
из тега, то проверьте, что он доступен для записи, убедитесь, что на нем достаточно места, запишите его и затем используйте makeReadOnly()
из Ndef
....
Если получить объект Ndef
не удалось (исключение), вам нужно сначала отформатировать тег .... так ...
получить объект NdefFormattable
из обнаруженного Tag
и написать ему сообщение и защитить его, используя formatReadOnly(NdefMessage firstMessage)
, или просто отформатировать, а затем продолжить с кодом, чтобы получить Ndef
.. .
Если вы не можете получить объект NdefFormattable
, значит, что-то серьезно не так, как вы и просили в своем фильтре. Форматирование может быть неудачным, если оно уже доступно только для чтения.
Документация разработчика не так уж и плоха, как только вы решите установить IntentFilter
с помощью «Технологии тегов» (включая NdefFormatable
и Ndef
), а затем получите эти объекты из базового тега для выполнения различных операций. .