как получить все Phone.DISPLAY_NAME_PRIMARY и номер телефона разового размера - PullRequest
0 голосов
/ 21 декабря 2018

Я хочу получить все контактные данные вместе с размером номера телефона.Сейчас я использую запросы на буксировку:

1.

crContacts = getContentResolver()
            .query(ContactsContract.Contacts.CONTENT_URI, null,null, null, null)

, а затем 2.

while (crContacts.moveToNext()) {
id = crContacts.getString(crContacts.getColumnIndex(ContactsContract.Contacts._ID));
Cursor crPhones = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID
                                + " = ?", new String[]{id}, null);

}

Любой способ получить phone number size и Phone.DISPLAY_NAME_PRIMARY один раз беззапрос дважды?

1 Ответ

0 голосов
/ 25 декабря 2018

Не уверен, что вы подразумеваете под номером телефона размер , но вы можете легко получить доступ ко всем полям Phone.CONTENT_URI вместе с неявными объединениями из таблицы Contacts.CONTENT_URI, вот пример:

String[] projection = new String[] { Phone.CONTACT_ID, Phone.DISPLAY_NAME, Phone.NUMBER };
Cursor c = cr.query(Phone.CONTENT_URI,projection,null,null,null);
while (c.moveToNext()) {
   long contactId = c.getLong(0);
   String name = c.getString(1);
   String phone = c.getString(2);
   Log.i("Phones", "got contact phone: " + contactId + " - " + name + " - " + phone);
}

Подробнее о неявных объединениях, которые вы получаете при запросе к любой таблице данных, можно прочитать здесь: https://developer.android.com/reference/android/provider/ContactsContract.Data#columns

...