Как получить vCard (.vcf файл) в Android-контакты с веб-сайта

Я пытаюсь добавить vCard из веб-ссылки в список контактов пользователя на Android 2.2. Когда я направляю пользователя в файл .vcf, все, что я получаю, это текстовый вывод в мобильном браузере. Я подтвердил, что файлы передаются с текстом/v-картой MIME. Кажется, это должно быть довольно просто. Любые идеи?

Ответ 1

AFAIK Android не поддерживает файлы vCard из коробки, по крайней мере, до 2.2.

Вы можете использовать приложение vCardIO для чтения файлов VCF с вашей SD-карты и сохранения контактов. Поэтому вам нужно сначала сохранить их на SD-карте и импортировать их впоследствии.

vCardIO также доступен через рынок.

Ответ 2

Теперь есть функция импорта в Android ICS 4.0.4. Сначала вы должны сохранить свой vcf на хранилище (USB-накопитель или SD-карту). Android сканирует выбранное хранилище для обнаружения любого файла vcf и импортирует его в выбранной адресной книге. Функциональность находится в меню параметров вашего списка контактов.

Ответ 3

Просто, чтобы вы знали: я просто попробовал это, используя файл vCard 2.1, созданный в соответствии с vCard 2.1 spec. Я обнаружил, что vCard 2.1, несмотря на старую версию, уже охватил все, что мне нужно, включая фотографии с кодировкой base64 и международные наборы символов.

Он отлично работал на моем немодифицированном устройстве Android 4.1.1 (Galaxy S3). Он также работал над старым iPhone 3GS (iOS 5, через Evernote app) и немодифицированным старым устройством Android 2.1. Вам нужно только установить Content-disposition на attachment, как было предложено выше.

Незначительная проблема заключалась в том, что я вызвал загрузку VCF с помощью QR-кода который я просмотрел с помощью Приложение Microsoft Tag. Это приложение сообщило, что Android не может обрабатывать тип носителя text/x-vcard (или просто text/vcard, неважно). Как только я открыл ссылку в веб-браузере (я попробовал Chrome и браузер по умолчанию Android), он работал нормально.

Ответ 4

Это можно использовать для загрузки файла на SD-карту Протестировано с Android 2.3.3 и 4.0.3

======= php =========================

<?php
     // this php file (example saved as name is vCardDL.php) is placed in my html subdirectory
     //  
     header('Content-Type: application/octet-stream');
     // the above line is needed or else the .vcf file will be downloaded as a .htm file
     header('Content-disposition: attachment; filename="xxxxxxxxxx.vcf"');
     // 
     //header('Content-type: application/vcf'); remove this so android doesn't complain that it does not have a valid application
     readfile('../aaa/bbb/xxxxxxxxxx.vcf');
     //The above is the parth to where the file is located - if in same directory as the php, then just the file name
?>

======= html ========================

<FONT COLOR="#CC0033"><a href="vCardDL.php">Download vCARD</A></FONT>

Ответ 5

У меня работает 2.2, и изменений нет, отчеты от других на 2.3 говорят то же самое. Android (ошибка) не обрабатывает .vcf и ссылку на такой файл на веб-странице через порт 80, ни через HTTP-заголовки, ни в прямом потоке. Это просто НЕ ПОДДЕРЖИВАЕТСЯ ВСЕ.

Ответ 6

Я также заметил, что вам нужно сохранить файл как Unicode, UTF-8, no BOM в формате Windows с помощью CRLF (возврат каретки, подача строки). Потому что, если вы этого не сделаете, импорт будет ломаться. (Говоря что-то о странных символах в файле)

Удачи:) Sid