Я вырвал большую часть своих волос, и мне действительно нужна помощь, прежде чем я полностью осмелею.
Я пытаюсь запустить средство выбора действий, чтобы выбрать контакт с номером телефона. Когда этот контакт выбран, я хочу извлечь имя и номер телефона.
Но это происходит только для некоторых контактов, а не для всех. Код примерно такой:
Выберите контакт:
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
. В разделе «СМ. НИЖЕ» выше я пробовал различные другие поля, ссылки Contact._ID
, Phone._ID
и т. д. и т. д.
Любая идея, почему некоторые контакты не извлекаются с помощью этого метода?