контакт андроида выглядит подозрительно, как vcard, поэтому я подозреваю, что они используют vcards для внутреннего использования.
Я думаю, что это намного сложнее, чем внутреннее использование vCards, тем более что vCard - это просто текстовый файл, что делает его неэффективным для хранения и, тем более, для поиска большого количества из них.
Обзор ContactsContract (обратите внимание, я сократил его в том месте, где упоминается «трехуровневая модель данных») ...
Обзор
ContactsContract определяет расширяемую базу данных контактной информации. Контактная информация хранится в трехуровневой модели данных:
Насколько я могу судить, существует способ «извлечь» vCard, относящуюся к отдельному контакту, но я не знаю, как создать контакт из vCard.
РЕДАКТИРОВАТЬ: WRT импорт vCards при нажатии на ссылку в браузере - да, хорошая мысль. Я могу подтвердить, что он работает, по крайней мере, при получении vCard по Bluetooth (что, конечно, вполне логично). Если я «открываю» vCard на своем телефоне, я получаю «chooser», спрашивающий меня, хочу ли я использовать «File Editor» или «People» (приложение контактов HTC - не уверен, называется ли оно так же на других телефонах). Если есть только одна vCard, она импортируется без дальнейших запросов. Если их более одного, я получаю другой выборщик, спрашивающий, хочу ли я импортировать один / несколько / все (несколько дает другому варианту выбора с флажками для выбора).
Теоретически, я полагаю, может быть возможно иметь целую загрузку файлов .vcf, выгруженных в каталог где-нибудь, и написать некоторый код, который просто создает намерение, чтобы «открыть» один из них и использовать его с startActivity () без указав, какую деятельность использовать. Я не уверен, какое намеренное действие здесь будет использовано, но я бы начал с ACTION_VIEW - другие варианты могут быть ACTION_EDIT или (незначительно) ACTION_RUN.
Несмотря на то, что это может работать в известной среде, в частности, как единичное, оно немного грязное, и поведение / результаты могут отличаться в зависимости от телефона, версии Android и приложений контактов.
EDIT2: Чтобы использовать Intent для обработки файлов .vcf, я пробовал его только со своей SD-карты - я понятия не имею, как это сделать без предварительного сохранения. Следующее точно воспроизводит то, что я вижу, когда открываю vCard, отправленную через Bluetooth ...
Intent i = new Intent();
i.setAction(android.content.Intent.ACTION_VIEW);
i.setDataAndType(Uri.parse("file:///mnt/sdcard/downloads/bluetooth/MickeyMouse.vcf"), "text/x-vcard");
startActivity(i);