Cómo obtener el número de un contacto del nombre del contacto en android

Estoy teniendo un nombre de contactos conmigo y quiero su número. ¿Cómo obtener el número de contacto del nombre correspondiente en Android?

3 Solutions collect form web for “Cómo obtener el número de un contacto del nombre del contacto en android”

Una versión más corta ; Usted todavía necesita ese permiso (android.permission.READ_CONTACTS)

public String getPhoneNumber(String name, Context context) { String ret = null; String selection = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME+" like'%" + name +"%'"; String[] projection = new String[] { ContactsContract.CommonDataKinds.Phone.NUMBER}; Cursor c = context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection, selection, null, null); if (c.moveToFirst()) { ret = c.getString(0); } c.close(); if(ret==null) ret = "Unsaved"; return ret; } 

El código siguiente se cerrará de sesión para registrar todos los números de teléfono móvil para un contacto con un nombre para mostrar de contactName:

 Cursor cursor = null; try { cursor = getContentResolver().query(Data.CONTENT_URI, new String [] { Data.RAW_CONTACT_ID }, StructuredName.DISPLAY_NAME + "=? AND " + Data.MIMETYPE + "='" + StructuredName.CONTENT_ITEM_TYPE + "'", new String[] { contactName}, null); if (cursor != null && cursor.moveToFirst()) { do { String rawContactId = cursor.getString(0); Cursor phoneCursor = null; try { phoneCursor = getContentResolver().query(Data.CONTENT_URI, new String[] {Data._ID, Phone.NUMBER}, Data.RAW_CONTACT_ID + "=?" + " AND " + Phone.TYPE + "=" + Phone.TYPE_MOBILE + " AND " + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'", new String[] {rawContactId}, null); if (phoneCursor != null && phoneCursor.moveToFirst()) { String number = phoneCursor.getString(phoneCursor.getColumnIndex(Phone.NUMBER)); Log.d(TAG, "Mobile Number: " + number); } } finally { if (phoneCursor != null) { phoneCursor.close(); } } } while (cursor.moveToNext()); } } finally { if (cursor != null) { cursor.close(); } } 

Prueba este código

  people = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, "person_name"+"='"+name+"'", null, null); people.moveToFirst(); { { try{ String contactId = people.getString(people.getColumnIndex(ContactsContract.Contacts._ID)); String hasPhone = people.getString(people.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); if ( hasPhone.equalsIgnoreCase("1")) hasPhone = "true"; else hasPhone = "false" ; if (Boolean.parseBoolean(hasPhone)) { Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId,null, null); while (phones.moveToNext()) { String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); mConno.add(position,phoneNumber); } phones.close(); } if(hasPhone=="false") { mConname.remove(position); } else position++; } catch(Exception e) { } } } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.