Java 如何使用android获取NFC标签中的完整数据?
我写了这个程序,可以读取NFC标签中的所有有效载荷Java 如何使用android获取NFC标签中的完整数据?,java,android,nfc,Java,Android,Nfc,我写了这个程序,可以读取NFC标签中的所有有效载荷 @Override protected void onNewIntent(Intent intent) { if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) { Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
@Override
protected void onNewIntent(Intent intent) {
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if (rawMsgs != null) {
String payloadString="";
NdefMessage[] msg = new NdefMessage[rawMsgs.length];
for (int i = 0; i < rawMsgs.length; i++) {
msg[i] = (NdefMessage) rawMsgs[i];
NdefRecord[] rec=msg[i].getRecords();
byte[] byteArray=rec[0].getPayload();
payloadString=new String(byteArray);
Log.v("log", payloadString);
}
}
}
}
但没有人能从标签中获取数据
如果使用某个NFC阅读器应用程序读取标签,您将看到有效负载前后都有一些数据,这是标签中的完整数据
标签ic的类型为NTAG203
(05)D1 01 85 54是数据的标题
从(06)02656E30。。。。。至(27)30 31是有效载荷的内容
我想获取标记中的所有数据,例如:
从(00)04分贝39 64。。。致(05)44 03 89
及(28)00--,(29)00----
如何使用android读取这些数据
目的是,使用这些数据来保护我的产品,我会要求制造商为这些只读区写一些密钥,只有NFC卡有密钥才能使用我的应用程序,所以我需要读取这些数据。Android NDEF API将为您提供标签的NDEF内容,并提取标签技术的所有细节 如果要从标记中读取原始数据,则需要为正在读取的特定标记类型使用android.nfc.tech.*类。在这种情况下,NTAG203为2型
您可以使用从标签中获取原始数据。首先确定您拥有的卡类型,即Is07816等,然后尝试获取该数据,然后解码数据。请您详细说明您的答案,并添加一点关于您提供的解决方案的说明。NFC标签有不同的TPE,例如Felica,Iso1443等,它们有不同的数据编码,因此,为了访问和解码卡的数据,u必须研究这些编码,然后u将能够读取完整的数据。在现代技术中,标签以APDU的形式发送数据,因此你也可以学习管理APDU。这将帮助你完成你的申请。
NfcAdapter.EXTRA_ADAPTER_STATE,
NfcAdapter.EXTRA_TAG,
NfcAdapter.EXTRA_ID