Aslında bir .vcf dosyası oluşturmak oldukça kolaydır. VCF format bir göz atın - bu basit bir metin dosyası. Tek yapmanız gereken VCF alanları kullanarak metin dosyası oluşturmak ve içine bilgi yazmaktır. Böyle bir şey ile son edeceğiz:
Person p = getPerson();
File vcfFile = new File(this.getExternalFilesDir(null), "generated.vcf");
FileWriter fw = new FileWriter(vcfFile);
fw.write("BEGIN:VCARD\r\n");
fw.write("VERSION:3.0\r\n");
fw.write("N:" + p.getSurname() + ";" + p.getFirstName() + "\r\n");
fw.write("FN:" + p.getFirstName() + " " + p.getSurname() + "\r\n");
fw.write("ORG:" + p.getCompanyName() + "\r\n");
fw.write("TITLE:" + p.getTitle() + "\r\n");
fw.write("TEL;TYPE=WORK,VOICE:" + p.getWorkPhone() + "\r\n");
fw.write("TEL;TYPE=HOME,VOICE:" + p.getHomePhone() + "\r\n");
fw.write("ADR;TYPE=WORK:;;" + p.getStreet() + ";" + p.getCity() + ";" + p.getState() + ";" + p.getPostcode() + ";" + p.getCountry() + "\r\n");
fw.write("EMAIL;TYPE=PREF,INTERNET:" + p.getEmailAddress() + "\r\n");
fw.write("END:VCARD\r\n");
fw.close();
Intent i = new Intent();
i.setAction(android.content.Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(vcfFile), "text/x-vcard");
startActivity(i);
(Bu kod bir faaliyet içine yerleştirilmek üzere olduğunu unutmayın bir aktivitede değilse, o zaman Context
bir örneğiyle getExternalFilesDir
önünde this
değiştirin..
Gerektiğinde daha az alana sahip olabilirsiniz. Alan değerlerinde ,
, ;
veya \
karakterleriniz varsa, bunlar \
; bir satırsonu karakterini bir değere koymak için, dosyaya \\n
yazınız (yani dosyanın kendisi \n
'u içermelidir, ikinci eğik çizgi yeni satırdaki çizgiden kaçmak içindir).
Bu kod gayet kaba ancak başlamanızı sağlamalı. Yine, VCF formatına bir göz atın ve oradan gidin.
Güncelleme: @Michael, orijinal cevaplarımdaki hataları işaret ettiğinden dolayı teşekkür ederiz.
sorununuzu ayrıntılı. Nesne nedir? kişi listesini getirdin mi? vcard oluşturdunuz mu? –
@SahilMahajanMj OP'nin, içinde bir kişinin bilgisi olan _an_ nesnesine sahip olduğu ve bunun dışında bir vcf oluşturmak istediği anlamına geldiğini düşünüyorum; Bu bilginin telefonun kişiyle ilgisi yoktur. –