android 通過電話號碼來獲取聯繫人姓名

通過電話號碼來獲取聯繫人姓名的程序如下,通過ContactsContract.PhoneLookup.CONTENT_FILTER_URI來獲取對應adress(電話號碼)的信息。

private String getContactName(String number) {
        if (TextUtils.isEmpty(number)) {
            return null;
        }        

        final ContentResolver resolver = mResolver.get();
        
        Uri lookupUri = null;
        String[] projection = new String[] { PhoneLookup._ID, PhoneLookup.DISPLAY_NAME };
        Cursor cursor = null;
        try {
            lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
            cursor =resolver.query(lookupUri, projection, null, null, null);
        } catch (Exception ex) {
            ex.printStackTrace();
            try {
                lookupUri = Uri.withAppendedPath(android.provider.Contacts.Phones.CONTENT_FILTER_URL,
                        Uri.encode(number));
                cursor = resolver.query(lookupUri, projection, null, null, null);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        String ret = null;
        if (cursor != null && cursor.getCount() > 0 && cursor.moveToFirst()) {
            ret = cursor.getString(1);
        }

        cursor.close();
        return ret;
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章