我开始学习更多有关AAR和NFC的知识,并发现这条简洁的代码正常工作。但是,我无法理解它的确实做了什么,是否已将AAR添加到NDEF消息中。有人可以指导我做什么代码行吗?非常感谢!
private NdefMessage getTagAsNdef() {
boolean addAAR = false;
String uniqueId = "ichatime.com";
byte[] uriField = uniqueId.getBytes(Charset.forName("US-ASCII"));
byte[] payload = new byte[uriField.length + 1]; //add 1 for the URI Prefix
payload[0] = 0x01; //prefixes http://www. to the URI
System.arraycopy(uriField, 0, payload, 1, uriField.length); //appends URI to payload
NdefRecord rtdUriRecord = new NdefRecord(
NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_URI, new byte[0], payload);
if(addAAR) {
// note: returns AAR for different app (nfcreadtag)
return new NdefMessage(new NdefRecord[] {
rtdUriRecord, NdefRecord.createApplicationRecord("com.example.ponpon")
});
} else {
return new NdefMessage(new NdefRecord[] {
rtdUriRecord});
}
}
答案 0 :(得分:1)
AAR是外部类型记录的一种形式,您可以从nfc-forum.org下载规范。外部类型由三个数据组成:
我编写了一个库project,它提供了高级NDEF记录对象,还包括外部类型记录。
在您可能感兴趣的活动中还有一个使用NFC的模板: - )