How to get a contact's number from contact name in android

后端 未结 3 1837
攒了一身酷
攒了一身酷 2020-12-06 06:16

I am having a contacts name with me and want his number .How to get contact number of corresponding name in Android ?

相关标签:
3条回答
  • 2020-12-06 06:46

    The following code will log out to logcat all the mobile numbers for a contact with a display name of 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();
        }
    }
    
    0 讨论(0)
  • 2020-12-06 06:56

    A shorter version; you still need that permission (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;
    }
    
    0 讨论(0)
  • 2020-12-06 07:03

    Try this code

            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)
                    { 
    
                    }
                }
    
            }
    
    0 讨论(0)
提交回复
热议问题