有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用PhoneNumberUtils检查联系人中是否存在号码。比较()

我有一个带国家代码的号码。我想检查联系人中是否存在该号码,但很难说,因为我可能已经或可能没有将联系人存储在E国家代码中。那么,我是否可以检查联系人中是否存在号码(前缀为国家代码)(忽略前缀。类似PhoneNumberUtils.compare()的内容)

这是代码,但是如果我没有将号码与国家代码一起存储,它将不会返回true

public boolean contactExists(Context context, String number) {
    Uri lookupUri = Uri.withAppendedPath(
            ContactsContract.PhoneLookup.CONTENT_FILTER_URI,
            Uri.encode(number));
    String[] mPhoneNumberProjection = { ContactsContract.PhoneLookup._ID,
            ContactsContract.PhoneLookup.NUMBER, ContactsContract.PhoneLookup.DISPLAY_NAME };
    Cursor cur = context.getContentResolver().query(lookupUri,mPhoneNumberProjection, null, null, null);
    try {
        if (cur.moveToFirst()) {
            return true;
        }
    } finally {
        if (cur != null)
            cur.close();
    }
    return false;
}

共 (1) 个答案

  1. # 1 楼答案

    我最后就是这样做的

    public boolean contactExists(Context context, String number, ContentResolver contentResolver) {
        Cursor phones = contentResolver.query(ContactsContract.CommonDataKinds.Phone.
                CONTENT_URI, null, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC");
        while (phones.moveToNext()){
            String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
            if(PhoneNumberUtils.compare(number, phoneNumber)){
                return true;
            }
        }
        return false;
    }