Search code examples
javaandroidandroid-contactsphone-number

Android Contacts - Get Phone number


I'm trying to get all phone numbers of a contact in Android. My code looks like this:

ContentResolver cr = context.getContentResolver();
String[] projection = new String[] { ContactsContract.CommonDataKinds.Phone.NUMBER };
String selection = ContactsContract.Data.CONTACT_ID + "=" + contactId;
Cursor nameCur = cr.query(ContactsContract.Data.CONTENT_URI, projection, selection, null, null);
while (nameCur.moveToNext()) {
    String contact = nameCur.getString(nameCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}

In principle, it works but the variable "contact" sometimes has values like "null", "1", "4" or "phonenumber@whatsapp". How can I really only get the phone numbers without these stupid WhatsApp Id strings?


Solution

  • You can also check what is contact: phone number or something else:

    public static boolean isPhoneNumberValid(CharSequence phone) {
        return !(TextUtils.isEmpty(phone)) && Patterns.PHONE.matcher(phone).matches();
    }