contact exists in contacts

后端 未结 3 2010
予麋鹿
予麋鹿 2021-01-02 17:27

I have phone number. Is there any way to check whether the phone number exists in contacts database in the device or not? Depending on that I need have move further in my ap

相关标签:
3条回答
  • 2021-01-02 17:46

    I tried the code above on an ice cream device (SIII) and it didnt work so after some search i ended up creating this method (which is working nicely )

        private boolean isContact(String incommingNumber) {
            Cursor cursor =null;
            String name = null;
            try {
                Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(incommingNumber));
                 cursor = MainService.this.getContentResolver().query(uri, new String[] { PhoneLookup.DISPLAY_NAME }, null, null, null);
                if (cursor != null && cursor.moveToFirst()) {
                    name = cursor.getString(cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME));
                }
            } finally {
                if(cursor!=null){
                    cursor.close();
                }
            }
            return Util.hasValue(name);
        }
    
    0 讨论(0)
  • 2021-01-02 17:58

    A minor change in your code :: You need to have lookupUri..

    public boolean contactExists(Activity _activity, String number) {
        Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
        String[] mPhoneNumberProjection = { PhoneLookup._ID, PhoneLookup.NUMBER, PhoneLookup.DISPLAY_NAME };
        Cursor cur = _activity.getContentResolver().query(lookupUri, mPhoneNumberProjection, null, null, null);
        try {
            if (cur.moveToFirst()) {
                return true;
            }
        } finally {
            if (cur != null)
                cur.close();
        }
        return false;
    }// contactExists
    
    0 讨论(0)
  • 2021-01-02 18:10
    public boolean contactExists(Activity _activity, String number) {
        if (number != null) {
            Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
            String[] mPhoneNumberProjection = { PhoneLookup._ID, PhoneLookup.NUMBER, PhoneLookup.DISPLAY_NAME };
            Cursor cur = _activity.getContentResolver().query(lookupUri, mPhoneNumberProjection, null, null, null);
            try {
                if (cur.moveToFirst()) {
                    return true;
                }
            } finally {
                if (cur != null)
                    cur.close();
            }
            return false;
        } else {
            return false;
        }
    }// contactExists
    

    Handled nullpointer exception.

    0 讨论(0)
提交回复
热议问题