после вставки свежего контакта в родной как я могу получить родной идентификатор контакта

ли способ получить все телефонные номера для всех контактов, не делая отдельный запрос для каждого контакта? (используя Android 2.0+). Это очень медленно, если у вас более 100 контактов (непригодных для использования на младших телефонах), я подумал, смогу ли я сделать более эффективный запрос.

В настоящее время я получаю курсор со всеми действующими контактами ContactsContract.Contacts.IN_VISIBLE_GROUP, а затем отдельный запрос для каждого контакта, чтобы получить все их номера.

Фрагмент из get Contacts просто получает имя и ключ поиска:

Uri uri = ContactsContract.Contacts.CONTENT_URI;

String[] projection = new String[] {
    ContactsContract.Contacts.DISPLAY_NAME,
    ContactsContract.Contacts.LOOKUP_KEY};

Затем каждый контакт использует ключ поиска.

Uri lookupUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
Uri res = ContactsContract.Contacts.lookupContact(contentResolver, lookupUri);

String[] projection =  new String[]{ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Contacts.HAS_PHONE_NUMBER};

...

Cursor phones = contentResolver.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, phoneProjection, selection, selectionArgs, sortOrder);   

Ответы на вопрос(1)

Ваш ответ на вопрос