Уже более двух дней я пытаюсь получить список всех контактов из внутренней адресной книги (без контактов facebook, gmail или twitter) с указанием их семьи и имени.
Мне удалось получить список со всеми контактами, включая социальные контакты. Итак, я посмотрел на account_types и увидел, что в моем HTC Desire все внутренние контакты адресной книги были из «com.htc.android.pcsc», и я подумал: «Отлично, мне просто нужно отфильтровать весь список». Но тогда все люди с мобильными телефонами Android, отличными от htc, не смогут использовать мое приложение, если я жестко запрограммирую этот фильтр.
Следующей идеей было позволить пользователю выбрать, какую учетную запись он хочет использовать, но, к сожалению, «com.htc.android.pcsc» не появился в списке, который я получил от AccountManager?!?
Итак, мой вопрос: есть ли какой-либо стандартный способ доступа к внутренней адресной книге? Я действительно застрял с этим, и любой намек высоко ценится!
/edit: Возможно, я недостаточно ясно выразился. Я могу получить список контактов с помощью API ContactsContract:
ArrayList phoneContacts = new ArrayList();
String[] projection = new String[] {
Data.MIMETYPE,
ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME,
ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME
};
String selection = Data.MIMETYPE+" = '"+ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE+"'";
Cursor cursor = getContentResolver().query(ContactsContract.Data.CONTENT_URI, projection, selection, null, null);
while (cursor.moveToNext()) {
phoneContacts.add(...);
}
cursor.close();
Но затем у меня есть контакты из всех типов учетных записей, таких как com.google / com.htc.socialnetwoork.facebook и т. д.
И мой вопрос: как я могу отфильтровать все эти социальные сети и контакты gmail, чтобы у меня был список контактов, которые только из моей внутренней адресной книги?
/edit2: я нашел пример, описывающий те же трудности, что и у меня: http://forum.synchronous.ch/showthread.php?t=2057 У Synthesis AG была такая же проблема с их SyncML, что люди жаловались, что они не могут синхронизировать свою внутреннюю адресную книгу/телефонную книгу только с gmail , facebook и т. д. Но им удалось отделить внутреннюю адресную книгу от всех этих других типов учетных записей. Так что должен быть способ решить эту проблему, но я не могу понять, как это сделать. Пожалуйста помоги!