Как прочитать информацию об обнаруженном теге NFC (контент NDEF) в Android?

Я хочу прочитать содержимое NDEF, содержащееся в обнаруженном теге NFC (т. е. идентификатор тега, размер тега, тип тега, доступен ли тег для записи, тип цели и типы сообщений).


person Siva    schedule 02.04.2012    source источник
comment
Спасибо за ваш комментарий... до сих пор я получаю идентификатор тега и тип цели по тегу myTag = (Tag) nfcintent.getParcelableExtra(NfcAdapter.EXTRA_TAG); Строка tagTechlist[]= myTag.getTechList(); byte[] tagID=myTag.getId(); Теперь я хочу получить текст в этом теге, размер тега, тип тега и доступен для записи или нет...   -  person Siva    schedule 02.04.2012


Ответы (1)


Я предполагаю, что вы говорите о тегах с содержанием NDEF? В этом случае вы можете сделать:

Tag myTag = (Tag) nfcintent.getParcelableExtra(NfcAdapter.EXTRA_TAG);

// get NDEF tag details
Ndef ndefTag = Ndef.get(myTag);
int size = ndefTag.getMaxSize();         // tag size
boolean writable = ndefTag.isWritable(); // is tag writable?
String type = ndefTag.getType();         // tag type

// get NDEF message details
NdefMessage ndefMesg = ndefTag.getCachedNdefMessage();
NdefRecord[] ndefRecords = ndefMesg.getRecords();
int len = ndefRecords.length;
String[] recTypes = new String[len];     // will contain the NDEF record types
for (int i = 0; i < len; i++) {
  recTypes[i] = new String(ndefRecords[i].getType());
}
person NFC guy    schedule 02.04.2012
comment
Вы также можете проверить nfctools для получения дополнительной информации или, в качестве альтернативы, плагин, который я написал для создания сообщений NDEF. - person ThomasRS; 04.04.2012
comment
И еще одно, я хочу прочитать сообщение с данными в теге Ndef... пожалуйста, очень срочно... помогите мне... - person Siva; 10.04.2012
comment
byte[] mesg = ndefRecords[i].getPayload(), см. также developer.android.com/reference/android/nfc/NdefRecord. html - person NFC guy; 10.04.2012
comment
А если вам нужна дополнительная информация о NdefRecords, попробуйте code.google.com/ p/ndef-tools-for-android для представления записи более высокого уровня - person ThomasRS; 18.09.2012