我寫了這個程序,它可以讀取所有有效載荷在一個NFC標籤如何使用android獲取NFC標籤中的完整數據?
@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);
}
}
}
}
我試圖改變NfcAdapter.EXTRA_NDEF_MESSAGES不同的值,如:
NfcAdapter.EXTRA_ADAPTER_STATE,
NfcAdapter.EXTRA_TAG,
NfcAdapter.EXTRA_ID
但是,沒有人可以從數據標籤
如果使用某個NFC讀卡器應用程序讀取標籤,您會看到在有效載荷前後有一些數據,這是標籤中的完整數據。
標籤IC的類型是NTAG203
(05)D1 01 85 54是數據的報頭。
從(06)02 65 6E 30 30 30 30 .....(27)30 30 30 31我想在標籤中的所有數據,比如負載
的內容:
從(00)04 39 DB 64 ...到(05)44 03 89
和(28)00 00 - - ,(29)00 00 - -
如何使用android來讀取這些數據?
目的是,使用這些數據來保護我的產品,我會要求製造商在這些只讀區域寫入一些關鍵字,只有NFC卡有鑰匙才能使用我的應用程序,所以我需要讀取這些數據。
請您詳細說明您的答案,並增加關於您提供的解決方案的更多描述? – abarisone 2015-04-30 12:13:39
NFC標籤有很多不同的形狀,例如Felica,Iso1443等,它們有不同的數據編碼,所以對於卡的數據進行accessind和解碼,你將不得不研究這些編碼,然後你將能夠讀取完整的數據。在現代技術中,標籤將數據作爲APDU發送,所以你也可以學習管理APDU。這將有助於你完成你的申請。 – 2015-05-01 18:08:46