Android: no puedo obtener el número de teléfono de algunos contactos

Tengo problemas para extraer los números de teléfono de algunas personas en mi lista de contactos.

Primero muestro todos los contactos en una vista de lista:

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);

Al hacer clic en un elemento, así es como obtengo el contact_id:

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

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

Luego creo un nuevo fragmento y, al cargarlo, pregunto por el teléfono y el nombre para mostrar del contacto:

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));
    }

Entonces, para algunas personas que tienen un teléfono, obtengo el número de teléfono de esta manera y está bien. Pero para algunas personas no puedo obtener el número de teléfono de esta manera, pero sí tienen el número de teléfono en la agenda de contactos predeterminada del teléfono.

¿Qué salió mal?

Respuestas a la pregunta(3)

Su respuesta a la pregunta