2016-04-11 28 views
-1

Android programımın NFC etiketine belirli bir kişi (isim ve telefon numarası) yazmasını nasıl yapabileceğimi açıklayan herhangi bir eğitim veya örnek var mı? Kullanıcı etiketi telefonuna dokunduğunda, kişiyi telefondaki kişilere kaydeder?Android'de NFC etiketine bir kişi yazıyor

+0

Ad ve telefon numarasını NFC etiketine 'adlı adlı uygulamayı kullanarak kaydedebilirsiniz. NFC Tools 've aşağıdaki bağlantıyı kullanarak kartı okuyunuz: http://code.tutsplus.com/tutorials/reading-nfc-tags-with-android--mobile-17278 link –

cevap

2

Evet. VCARD türünü kullanma.

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; 
} 

Sonra kayıtları diziye kaydı eklemek: NFC olay niyet işleyicisi içinde

, sizin NdefRecord inşa etmek için bu yöntemi kullanmak

NdefRecord[] records = new NdefRecord[1]; 
records[0] = createVcardRecord("Henry", "Henry's Company", "0412345678", "[email protected]"); 

bir NdefMessage içine kayıtlar dizi iletin ve yazmak için hazırsınız:

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

@DigitalPerson: Bunun çalıştığını varsayarak, lütfen Bu soruya cevap verilsin mi? – henrycjc