Es ist eigentlich ziemlich einfach, eine .vcf-Datei zu generieren. Werfen Sie einen Blick auf VCF format - es ist eine einfache Textdatei. Alles, was Sie tun müssen, ist eine Textdatei zu erstellen und Informationen in die VCF-Felder zu schreiben. Sie werden mit etwas am Ende wie folgt:
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);
(Beachten Sie, dass dieser Code innerhalb einer Aktivität gesetzt werden soll, wenn es nicht in einer Aktivität ist, dann ersetzen this
vor getExternalFilesDir
mit einer Instanz von Context
..)
Sie können bei Bedarf mehr Felder verwenden. Wenn Sie ,
, ;
oder \
Zeichen in Feldwerten haben, müssen sie mit \
maskiert werden; Um ein Newline-Zeichen in einen Wert zu schreiben, schreiben Sie \\n
in die Datei (d. h. die Datei selbst muss \n
enthalten, der zweite Schrägstrich dient zum Entfernen des Schrägstrichs in der Newline).
Dieser Code ist ziemlich grob, aber es sollte Ihnen den Anfang machen. Schauen Sie sich das Format von VCF an und gehen Sie von dort aus weiter.
Update: Dank @Michael für das Aufzeigen von Fehlern in meinen ursprünglichen Antworten.
Ihr Problem erarbeiten. Was ist ein Objekt? hast du die Kontaktliste abgeholt? hast du vcard erstellt? –
@SahilMahajanMj Ich denke, das OP bedeutet, dass er _an_ Objekt mit der Information einer Person darin hat und er will einen VCF daraus erstellen; Diese Information hat nichts mit den Kontakten des Telefons zu tun. –