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?