首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PhoneNumberUtils.compare()检查联系人中是否存在数字

使用PhoneNumberUtils.compare()检查联系人中是否存在数字
EN

Stack Overflow用户
提问于 2014-11-17 23:04:20
回答 1查看 1.2K关注 0票数 0

我有一个带有国家代码的号码。我想检查联系人中是否存在该号码,但很难判断,因为我可能已经或可能没有通过国家代码存储联系人。所以,无论如何,我可以检查联系人中是否存在一个数字(带有国家代码前缀)(忽略前缀)。类似于PhoneNumberUtils.compare()

这是代码,但是如果我没有国家代码存储的号码,它就不会返回true。

代码语言:javascript
复制
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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-17 23:54:24

最后我就这样做了。

代码语言:javascript
复制
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;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26983637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档