Уже более двух дней я пытаюсь захватить список всех контактов из внутренней адресной книги (без facebook-, gmail- или twittercontacts) с их фамилией и именем.Доступ к внутренней адресной книге
Мне удалось получить список со всеми контактами, включая социальные контакты. Поэтому я посмотрел на account_types и увидел, что на моем HTC Desire все внутренние адресные книги-контакты были из «com.htc.android.pcsc», и я был «Великий, мне просто нужно отфильтровать весь список». Но тогда все люди с не-htc-мобильными телефонами Android не смогут использовать мое приложение, если бы я жестко задал этот фильтр.
Следующая идея состояла в том, чтобы позволить пользователю выбрать, какую учетную запись он хочет использовать, но, к сожалению, «com.htc.android.pcsc» не появился в списке, который я получил от AccountManager?!?
Так что мой вопрос: Есть ли стандартный способ доступа к внутренней адресной книге? Я действительно застрял в этом, и любой намек высоко оценен!
/edit: Возможно, я не сделал себя достаточно ясным. I может захватить ContactList, через ContactsContract API:
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();
Но тогда у меня есть контакты из всех различных accounttypes, как com.google/com.htc.socialnetwoork.facebook и т.д.
И мой вопрос: как я могу отфильтровать все эти социальные сети и gmailконтакты, поэтому у меня есть список контактов, который есть только из моей внутренней адресной книги?
/edit2: Я нашел пример, которые описывают те же трудности у меня есть: http://forum.synthesis.ch/showthread.php?t=2057 Синтез AG была такая же проблема с их SyncML, что люди жалуются, что они не могут синхронизироваться с их внутренней адресной/телефонной книги только с gmail, facebook и т. д. Но им удалось выделить внутреннюю адресную книгу из всех этих других учетных записей. Поэтому должен быть способ решить эту проблему, но я не могу понять, как это сделать. Пожалуйста помоги!
Дело в том, что я wan't закодировать синхронизации-ап и «контакты на высшем уровне» таблицы не обеспечивают достаточно информации о контакте, поэтому мне нужно придерживаться необработанных контактов. И вторая причина в том, что когда мне нужно создать новый контакт, мне нужно знать, на какой учетной записи я должен его добавить. –