Как я могу читать и отображать сообщения NDEF из тегов NFC? Пожалуйста помогите. Может ли кто-нибудь предоставить образец исходного кода для чтения тега Nfc?
Как читать теги NFC в Android?
comment
code.google.com/p/ndef-tools-for-android а>
- person ThomasRS   schedule 27.11.2012
Ответы (2)
1) Общее описание NFC на Android находится здесь< br> 2) NFCDemo здесь
3) Очень хорошо информация также находится здесь
4 ) Также в книге "Программирование Android" от "Zigurd Mednieks" есть глава о NFC
BR
STeN
person
STeN
schedule
26.09.2011
К сожалению, NFCDemo больше не доступен по этой ссылке.
- person LordParsley; 23.03.2018
У нас есть два варианта чтения карты nfc.
Читать из кеша
Ndef ndef = Ndef.get(tag); if (ndef == null) { // NDEF is not supported by this Tag. return null; } NdefMessage ndefMessage = ndef.getCachedNdefMessage(); if (ndefMessage == null) { mTextView.setText("The tag is empty !"); return null; } NdefRecord[] records = ndefMessage.getRecords(); for (NdefRecord ndefRecord : records) { if (ndefRecord.getTnf() == NdefRecord.TNF_WELL_KNOWN && Arrays.equals(ndefRecord.getType(), NdefRecord.RTD_TEXT)) { try { return readText(ndefRecord); } catch (UnsupportedEncodingException e) { Log.e(TAG, "Unsupported Encoding", e); } } }
Читать напрямую, используя
public void readFromTag(Intent intent){
Ndef ndef = Ndef.get(detectedTag);
try{
ndef.connect();
txtType.setText(ndef.getType().toString());
txtSize.setText(String.valueOf(ndef.getMaxSize()));
txtWrite.setText(ndef.isWritable() ? "True" : "False");
Parcelable[] messages = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if (messages != null) {
NdefMessage[] ndefMessages = new NdefMessage[messages.length];
for (int i = 0; i < messages.length; i++) {
ndefMessages[i] = (NdefMessage) messages[i];
}
NdefRecord record = ndefMessages[0].getRecords()[0];
byte[] payload = record.getPayload();
String text = new String(payload);
txtRead.setText(text);
ndef.close();
}
}
catch (Exception e) {
Toast.makeText(getApplicationContext(), "Cannot Read From Tag.", Toast.LENGTH_LONG).show();
}
}
person
Ranjith Subramaniam
schedule
21.04.2014