2015-01-16 5 views
-5

Я пытаюсь прочитать содержимое карты Mifare Ultralight с помощью бесконтактного считывателя NFC ACR122U Android SDK.Чтение исходных данных карты NFC Mifare в android

Я могу получить следующие шестнадцатеричные значения

01 03 A0 0C 44 03 15 D1 01 11 54 02 65 6E 33 34 

Но я не могу получить мои фактические данные. Прочтите, как извлечь массив байтов из шестнадцатеричных значений.

+0

Просто проверьте эту ссылку, которую вы можете достичь http://www.coderanch.com/t/450379/java/java/Hex-String-byte-ar луч – Piyush

ответ

5

Похоже, что вы прочитали 4 страницы, начиная со страницы 4 этого тега MIFARE Ultralight. Более того, тег, кажется, отформатирован в соответствии со спецификацией тега NFC Forum Type 2 (доступный от NFC Forum website).

A Тип 2 Метка содержит ряд тегов длины значения (ППЗ) структур:

01 (Tag: Lock Control TLV) 
    03 (Length: 3 bytes) 
    A0 0C 44 (Value: Information on position and function of lock bytes) 
03 (Tag: NDEF Message TLV) 
    15 (Length: 21 bytes) 
    D101115402656E3334... (Value: NDEF message) 

Вы бы должны выдать команду чтения в течение следующих 4-х страниц, чтобы получить оставшиеся данные ЦНК сообщение.

В настоящее время мы знаем, что тег содержит сообщение ЦНК, начиная с

D101115402656E3334 

Это приводит к

D1 (Header byte of record 1) 
    - Message begin is set (= first record of an NDEF message) 
    - Message end is set (= last record of an NDEF message) 
    - Short record flag is set (= Payload length field consists of 1 byte only) 
    - Type Name Format = 0x1 (= Type field contains an NFC Forum well-known type) 
    01 (Type length: 1 byte) 
    11 (Payload length: 17 bytes) 
    54 (Type: "T") 
    02656E3334... (Payload field) 

полезной нагрузки поле текстового записи NFC Forum декодирует как это:

02 (Status byte: Text is UTF-8 encoded, Language code has a length of 2 bytes) 
656E (Language code: "en") 
3334... (Text: "34"...)