我正在开发我的第一个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)添加到此识别中。但经过大量的搜索后,我似乎仍然不知道怎么做?
答案 0 :(得分:1)
NdefRecord
有一个有用的toMimeType()
方法,因此您可以使用它来获取每条记录的MIME类型。 NDEF记录对标签的类型一无所知,您必须使用(ACTION_TECH_DISCOVERED)注册您的应用程序以进行标签技术调度,并使用Tag
对象来确定类型。有关简单说明,您可以使用Tag.toString()
了解更多信息Tag.getTechList()
。