Да, это возможно. NTAG203 (datasheet) является тегом ISO/IEC 14443 типа A («NFC-A») и следует спецификации спецификации тега NFC Forum Type 2. Чтобы активировать функцию физической защиты записи такого тега, вам нужно установить биты блокировки.
На Android, вы можете получить доступ к такой тег, получив экземпляр класса разъема NfcA
технологии для тега ручки:
Tag tag = ... // I assume you already received the tag handle by means of an NFC discovery intent
NfcA nfcA = NfcA.get(tag);
if (nfcA != null) {
// this is an NFC-A tag
...
Стопорные биты NTAG203 расположены в странице 2 (0x02
) байт 2 -3 и на стр. 40 (0x28
) байты 0-1. Каждый из бит этих 4 байтов управляет состоянием блокировки определенных страниц области памяти NTAG203. Чтобы активировать блокировку, вы должны установить бит блокировки в '1'
, выпустив команду записи для страниц, содержащих биты блокировки. Так что для простейшего сценария блокировки всего тега вы можете сделать что-то вроде этого:
// connect to the tag
nfcA.connect();
byte[] result;
// write all-ones to the lock bits on page 0x02
result = nfcA.transceive(new byte[]{
(byte)0xA2, // Command: WRITE
(byte)0x02, // Address: page 0x02 (2)
(byte)0x00, (byte)0x00, (byte)0xFF, (byte)0xFF // Data: set bytes 2-3 to all '1'
});
// write all-ones to the lock bits on page 0x28
result = nfcA.transceive(new byte[]{
(byte)0xA2, // Command: WRITE
(byte)0x02, // Address: page 0x28 (40)
(byte)0xFF, (byte)0x11, (byte)0x00, (byte)0x00 // Data: set byte 0 and lock bits in byte 1 to all '1'
});
nfcA.close();
Что вы подразумеваете под «программным способом», но «не используя приложение»? Вы можете использовать считыватель, подключенный к ПК с некоторым программным обеспечением. – corvairjo
Извините - не очень понятно - я имел в виду, что искал метод, который можно закодировать в моем собственном приложении для Android. Я хотел опустить ответы, предлагающие использовать стороннее приложение. - Обновил вопрос. – Ali