Generowanie pliku .vcf jest dość łatwe. Spójrz na VCF format - to prosty plik tekstowy. Wszystko, co musisz zrobić, to stworzyć plik tekstowy i zapisać w nim informacje za pomocą pól VCF. Będziesz skończyć z czymś takim:
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);
(Zauważ, że ten kod jest do umieszczenia wewnątrz aktywności Jeżeli nie jest to działalność, a następnie zastąpić this
przed getExternalFilesDir
z instancją Context
..)
W razie potrzeby można mieć więcej mniejszej liczby pól. Jeśli masz wartości ,
, ;
lub \
w wartościach pól, muszą one zostać zastąpione wartością \
; aby wstawić znak nowej linii do wartości, napisz \\n
do pliku (to znaczy, że sam plik musi zawierać \n
, drugi ukośnik służy do uniknięcia ukośnika w nowej linii).
Ten kod jest dość surowy, ale powinien zacząć. Ponownie, spójrz na format VCF i idź tam.
Aktualizacja: Dzięki @Michael za wskazanie błędów w moich oryginalnych odpowiedziach.
opracować swój problem. co to jest obiekt? Czy pobrałeś listę kontaktów? czy stworzyłeś vcard? –
@SahilMahajanMj Myślę, że OP oznacza, że ma on obiekt z danymi osoby i chce utworzyć z niego vcf; ta informacja nie ma nic wspólnego z kontaktami telefonu. –