Android - não consigo obter o número de telefone de alguns contatos

Estou tendo um problema com a extração de números de telefone de algumas pessoas na minha lista de contatos.

Primeiro mostro todos os contatos em um listview:

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

Ao clicar em um item, é assim que eu busco o 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));
    }
}

Em seguida, crio um novo fragmento e, ao carregá-lo, consultei o telefone e o nome de exibição do contato:

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

Então, para algumas pessoas que têm um telefone, eu pego o número de telefone e tudo bem. Mas, para algumas pessoas, não consigo obter o número de telefone dessa maneira, mas eles têm um número de telefone no catálogo de contatos do telefone padrão.

O que deu errado?

questionAnswers(3)

yourAnswerToTheQuestion