0

我已经开始了解更多关于 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});  
    }  
 }
4

1 回答 1

1

AAR 是外部类型记录的一种形式,您可以从 nfc-forum.org 下载其规范。外部类型由三部分数据组成:

  • 领域
  • 类型
  • 价值

我编写了一个库项目,它提供高级 NDEF 记录对象,其中还包括外部类型记录。

还有一个模板用于在您可能感兴趣的活动中使用 NFC :-)

于 2012-11-27T14:06:42.557 回答