Не могат да се получат данни за контакт от някои контакти

Вече извадих по-голямата част от косата си и наистина имам нужда от помощ, преди да стана напълно смела

Опитвам се да стартирам инструмент за избор на действие, за да избера контакт, който има телефонен номер. Когато този контакт е избран, искам да извлека името и телефонния номер.

Но това се случва само за някои контакти, не за всички. Кодът е приблизително както следва:

Изберете контакт:

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 и т.н.

Някаква идея защо някои контакти не се извличат с този метод?


person simendsjo    schedule 25.10.2014    source източник


Отговори (1)


Когато използвам вашия код, дори не получавам контакта, който съм избрал правилно. Данните за намерението съдържат URI на данните, които искате, така че можете да ги използвате директно.

Опитвам --

 Cursor cursor = content.query(data.getData(),
                fields,
                null,
                null,
                null);
person iagreen    schedule 26.10.2014
comment
Благодаря. Много по-просто. Същият проблем обаче се прилага. Курсорът е празен: getCount() == 0. Странно, тъй като току-що избрах контакта.. - person simendsjo; 26.10.2014