2010-12-07 5 views
11

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

ответ

5

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

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

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

+9

Лучшее решение, которое я нашел, - это принудительное скачивание, установив для него контент-расположение.vcf в файле Apache httpd.conf или .htaccess. Затем пользователь должен открыть файл, и им задается вопрос, как они хотят, чтобы контактная информация была вставлена ​​в их список контактов. Этот поток помог много: http://code.google.com/p/android/issues/detail?id=9215 – ARolek 2010-12-08 06:56:34

1

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

Удачи :) Sid

2

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

+0

После попытки заставить это работать, это мой опыт Android, включая и 4.0, а также .... – 2012-03-29 17:09:27

4

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

3

Это может использоваться, чтобы загрузить файл на 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> 
4

Просто, чтобы вы знали: я просто попытался его с помощью визитной карточки 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 code, который я сканировал с помощью Microsoft Tag app. Это приложение сообщило мне, что Android не может обрабатывать тип медиафайлов text/x-vcard (или просто text/vcard, неважно). Как только я открыл ссылку в веб-браузере (я пробовал Chrome и браузер по умолчанию Android), он работал нормально.