Android контакт: зачем каждый раз запрашивать использование Контактов Список телефонов - PullRequest
3 голосов
/ 12 марта 2012

Каждое множество примеров (веб-сайт, учебник, электронная книга ...), когда нам нужно увидеть номер телефона одного контактного ID, нам нужно запросить, как показано ниже:

Cursor contactCursor = getContentResolver().query(uri, null, null, null, null);         
if (contactCursor.moveToFirst()){
            id = contactCursor.getString(contactCursor.getColumnIndex(ContactsContract.Contacts._ID));
        }
        contactCursor.close();

        //CHOOSE MOBILE PHONE OF CONTACT_ID
        Cursor phoneCursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                                        new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER},
                                                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + id + " AND " + ContactsContract.CommonDataKinds.Phone.TYPE+ "=" +ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE ,
                                                        null, null);

Но, если язапросите прямо на one contact uri и отфильтруйте столбец _ID = contactID.Я увижу ошибку при запросе.Вот мой код:

String[] projector = new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER};
        String selection = ContactsContract.CommonDataKinds.Phone.TYPE + "=" + ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE;
        Cursor phoneContact = getContentResolver().query(uri, projector, selection, null, null);

Примечания: объект uri в приведенном выше коде возвращается, когда кто-то выбирает один контакт из списка контактов.

@ Редактировать: здесь моя ошибка, которую я получаю: Здесь моя ошибка:

java.lang.RuntimeException: ошибка доставки результата ResultInfo {who = null, request = 0, result = -1, data = Intent {dat = content: //com.android.contacts/contacts/lookup / 0r2-354F574135474F2741334D352743 / 2 flg = 0x1}} для действия {com.basic / com.data.SMSContactApp}: java.lang.IllegalArgumentException: неверные данные столбца1

Спасибо:) * 1016

...