मैं एनएफसी एंड्रॉयड पुस्तकालय के साथ एक ISO15693 आरएफआईडी टैग को पढ़ने के लिए कोशिश कर रहा हूँ पढ़ http://img42.com/gw07d+एंड्रॉयड एनएफसी ISO15693 आरएफआईडी टैग
टैग आईडी सही ढंग से पढ़ा लेकिन डेटा है टैग में नहीं है।
onCreate
विधि:
// initialize NFC
nfcAdapter = NfcAdapter.getDefaultAdapter(this);
nfcPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, this.getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
onNewIntent
विधि:
if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction()) || NfcAdapter.ACTION_TECH_DISCOVERED.equals(intent.getAction())) {
currentTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
byte[] id = currentTag.getId();
Tag_data_TextDisplay.setText("TagId:" + Common.getHexString(id));
for (String tech : currentTag.getTechList()) {
if (tech.equals(NfcV.class.getName())) {
NfcV nfcvTag = NfcV.get(currentTag);
try {
nfcvTag.connect();
txtType.setText("Hello NFC!");
} catch (IOException e) {
Toast.makeText(getApplicationContext(), "Could not open a connection!", Toast.LENGTH_SHORT).show();
return;
}
try {
byte[] cmd = new byte[]{
(byte) 0x00, // Flags
(byte) 0x23, // Command: Read multiple blocks
(byte) 0x00, // First block (offset)
(byte) 0x04 // Number of blocks
};
byte[] userdata = nfcvTag.transceive(cmd);
userdata = Arrays.copyOfRange(userdata, 0, 32);
txtWrite.setText("DATA:" + Common.getHexString(userdata));
} catch (IOException e) {
Toast.makeText(getApplicationContext(), "An error occurred while reading!", Toast.LENGTH_SHORT).show();
return;
}
}
}
}
userdata
है मूल्य 0x02
({ 0x02 }
) के साथ एक एकल बाइट सही होने के बाद Transceive विधि समाप्त होता है।
और इसे क्या पढ़ा जाना चाहिए? –
@RandykaYudhistira जहां मैं टैग पढ़ता हूं http://img42.com/mHBPa+ – yoshgoodman
उपयोगी होगा यदि आप हमें 'nfcvTag.transceive (cmd); (बिना 32 बाइट्स के पैडिंग) के वास्तविक परिणाम दिखा सकते हैं। इसके अलावा, क्या आप यह सुनिश्चित कर सकते हैं कि हेक्स रूपांतरण के लिए आपके बाइट-सरणी प्रत्येक बाइट को दो हेक्टेयर अंकों तक पैड करता है (अन्यथा मूल्य की व्याख्या करना मुश्किल होगा)। –