実際に.vcfファイルを生成するのはかなり簡単です。 VCF formatを見てください - それは単純なテキストファイルです。あなたがする必要があるのは、テキストファイルを作成し、VCFフィールドを使用してテキストファイルに情報を書き込むことだけです。あなたはこのようなものになってしまいます:
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);
(このコードは、アクティビティの内側に配置されるべきであることに注意してください、それが活動中でない場合は、Context
のインスタンスでgetExternalFilesDir
の前でthis
を交換してください。 )
必要に応じて、より多くのフィールドを追加することができます。フィールド値に,
,;
または\
文字がある場合は、\
でエスケープする必要があります。改行文字を値に入れるには、ファイルに\\n
を書きます(つまり、ファイル自体には\n
が含まれていなければなりません.2番目のスラッシュは改行のスラッシュをエスケープするためのものです)。
このコードは非常に粗末ですが、開始する必要があります。再度、VCFのフォーマットを見てそこから行ってください。
更新日: @Michaelが元の回答の間違いを指摘してくれたことに感謝します。
:EZ-のvCardを使用して、@ AleksGのコードサンプルでvCardがそうのように生成される
。オブジェクトは何ですか?連絡先リストを取得しましたか? vcardを作成しましたか? –
@SahilMahajanMj私は、OPは彼がいくつかの人の情報を持ったオブジェクトを持っていることを意味し、彼はそこからvcfを作成したいと考えています。この情報は電話の連絡先とは関係ありません。 –