Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用android获取NFC标签中的完整数据?_Java_Android_Nfc - Fatal编程技术网

Java 如何使用android获取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);

我写了这个程序,可以读取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);
            }
        }
    }
}
但没有人能从标签中获取数据

如果使用某个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