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?