Android Java NFC:读取mimetype和tagtype

时间:2014-04-14 07:20:39

标签: android nfc ndef

我正在开发我的第一个java项目,所以我是新手。我创建了一个从nfc芯片读取数据的活动。目前,我可以通过以下代码访问标签中的ID和消息:

tagId = Utils.toHex(intent.getByteArrayExtra(NfcAdapter.EXTRA_ID)).toLowerCase();       
NdefMessage[] messages = null;
Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);

if (rawMsgs != null) {  
    messages = new NdefMessage[rawMsgs.length];  
    for (int i = 0; i < rawMsgs.length; i++) {  
        messages[i] = (NdefMessage) rawMsgs[i];  
    }  
} 
if(messages[0] != null) {  
    String result="";  
    byte[] payload = messages[0].getRecords()[0].getPayload();  
    // this assumes that we get back am SOH followed by host/code  
    for (int b = 0; b<payload.length; b++) { // skip SOH  
        result += (char) payload[b];  
    }  
    Toast.makeText(getApplicationContext(), "Tag Contains " + NfcAdapter.EXTRA_TAG.toString(), Toast.LENGTH_SHORT).show();
    tagMessage=result;
} 

我想将mimetype和tagtype(例如mifare classic)添加到此识别中。但经过大量的搜索后,我似乎仍然不知道怎么做?

1 个答案:

答案 0 :(得分:1)

NdefRecord有一个有用的toMimeType()方法,因此您可以使用它来获取每条记录的MIME类型。 NDEF记录对标签的类型一无所知,您必须使用(ACTION_TECH_DISCOVERED)注册您的应用程序以进行标签技术调度,并使用Tag对象来确定类型。有关简单说明,您可以使用Tag.toString()了解更多信息Tag.getTechList()