Вече извадих по-голямата част от косата си и наистина имам нужда от помощ, преди да стана напълно смела
Опитвам се да стартирам инструмент за избор на действие, за да избера контакт, който има телефонен номер. Когато този контакт е избран, искам да извлека името и телефонния номер.
Но това се случва само за някои контакти, не за всички. Кодът е приблизително както следва:
Изберете контакт:
Intent contactPicker = new Intent(Intent.ACTION_PICK, contactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(contactPicker, REQ_PICK_CONTACT);
Извличане на идентификатор (забележка getData().getLastPathSegment()
:
onContactForImportPicked(intent.getData().getLastPathSegment());
и след това се опитвам да извлека този контакт:
String[] fields = new String[] {
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME_PRIMARY
};
Cursor cursor = content.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
fields,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?", new String[] { id }, // SEE BELOW
null);
В този момент много контакти се извличат правилно, но много също не съществуват. cursor.getCount() == 0
. В секцията „ВИЖТЕ ПО-ДОЛУ“ по-горе опитах различни други полета, linke Contact._ID
, Phone._ID
и т.н.
Някаква идея защо някои контакти не се извличат с този метод?