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