Android - nie można uzyskać numeru telefonu niektórych kontaktów

Mam problem z wyodrębnianiem numerów telefonów niektórych osób z mojej listy kontaktów.

Najpierw pokazuję wszystkie kontakty w widoku listy:

String[] projection = new String[] {
            ContactsContract.Contacts._ID,
            ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
            ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
            ContactsContract.CommonDataKinds.Phone.NUMBER
    };

mCursor = mContext.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
            projection, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?", new String[] {mContactId}, null);

Po kliknięciu elementu w ten sposób pobieram identyfikator kontaktu:

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
        Cursor currentCursor = mContactsAdapter.getCursor();

    if (currentCursor != null) {
        notifyOnContactSelectedListeners(String.valueOf(id));
    }
}

Następnie tworzę nowy fragment i podczas ładowania go sprawdzam telefon i nazwę wyświetlaną kontaktu:

if (cursor != null && cursor.getCount() > 0) {

        cursor.moveToFirst();

        String firstName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
        String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
    }

Więc dla niektórych osób, które mają telefon, otrzymuję numer telefonu w ten sposób i to jest w porządku. Ale dla niektórych osób nie mogę uzyskać numeru telefonu w ten sposób - ale mają numer telefonu w domyślnej książce kontaktów telefonu.

Co poszło nie tak?

questionAnswers(3)

yourAnswerToTheQuestion