Я думал, что при извлечении контактов из Phone.CONTENT_URI столбец Phone.CONTACT_ID не может быть пустым. Однако я получил много сообщений о сбоях от моих пользователей, таких как этот:
Caused by java.lang.IllegalStateException: activity.contentResolver…taKinds.Phone.CONTACT_ID) must not be null
Возможно, потому что я сортирую результаты sql по CONTACT_ID, вот пример кода
activity.contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
arrayOf(ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME_PRIMARY,
ContactsContract.CommonDataKinds.Phone.PHOTO_THUMBNAIL_URI,
ContactsContract.CommonDataKinds.Phone.IS_PRIMARY,
ContactsContract.CommonDataKinds.Phone.LAST_TIME_CONTACTED,
ContactsContract.CommonDataKinds.Phone.TIMES_CONTACTED,
ContactsContract.CommonDataKinds.Phone.PHOTO_URI,
ContactsContract.CommonDataKinds.Phone.TYPE,
ContactsContract.CommonDataKinds.Phone.LABEL),
"${ContactsContract.CommonDataKinds.Phone.HAS_PHONE_NUMBER} = ?" +
" AND ${ContactsContract.CommonDataKinds.Phone.NUMBER} IS NOT NULL" +
" AND ${ContactsContract.CommonDataKinds.Phone.CONTACT_ID} IS NOT NULL",
arrayOf("1"),
ContactsContract.CommonDataKinds.Phone.CONTACT_ID)
Исключение выдается из первой строки предоставленного мною фрагмента. И теперь у меня есть два вопроса:
1) Почему я вижу эту ошибку, хотя я указал ${ContactsContract.CommonDataKinds.Phone.CONTACT_ID} IS NOT NULL
в своем sql-запросе?
2) В какой ситуации Phone.CONTACT_ID имеет значение null?