将联系人写入Android上的NFC标签

将联系人写入Android上的NFC标签,android,nfc,Android,Nfc,是否有任何教程或示例说明如何让我的android程序将特定联系人(姓名和电话号码)写入NFC标签。因此,当用户用手机触摸标签时,它会将联系人保存到手机联系人中?是。使用VCARD类型 在NFC事件意图处理程序中,使用此方法构建NdefRecord: public NdefRecord createVcardRecord(String name, String org, String tel, String email) throws UnsupportedEncodingExc

是否有任何教程或示例说明如何让我的android程序将特定联系人(姓名和电话号码)写入NFC标签。因此,当用户用手机触摸标签时,它会将联系人保存到手机联系人中?

是。使用VCARD类型

在NFC事件意图处理程序中,使用此方法构建NdefRecord:

public NdefRecord createVcardRecord(String name, String org, String tel, String email) 
        throws UnsupportedEncodingException {

    String payloadStr = "BEGIN:VCARD" +"\n"+ 
                        "VERSION:2.1" +"\n" + 
                        "N:;" + name + "\n" + 
                        "ORG:"+org+"\n"+ 
                        "TEL:"+tel+"\n"+
                        "EMAIL:"+email+"\n
                        "+"END:VCARD";
    byte[] uriField = payloadStr.getBytes(Charset.forName("US-ASCII"));
    byte[] payload = new byte[uriField.length + 1];
    System.arraycopy(uriField, 0, payload, 1, uriField.length);
    NdefRecord nfcRecord = new NdefRecord(NdefRecord.TNF_MIME_MEDIA, 
            "text/vcard".getBytes(), 
            new byte[0], 
            payload);

    return nfcRecord;
}
然后将记录添加到记录数组:

NdefRecord[] records = new NdefRecord[1];
records[0] = createVcardRecord("Henry", "Henry's Company", "0412345678", "henry@domain.com");
将记录数组传递到NdefMessage中,即可编写:

NdefMessage message = new NdefMessage(records);
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
writeToTag(message, tag); // your tag writing function

您可以使用名为“NFC工具”的应用程序将姓名和电话号码保存在NFC标签上,并使用以下链接读取卡的内容:link@DigitalPerson当前位置假设此操作有效,请您标记此问题是否已回答?