在数据库中查找号码

时间:2015-01-10 14:46:52

标签: android android-contacts

我有一个号码存储在我的本地联系人中,如

XYZ 9986799867

现在,我将阅读此内容并将其存储在我的数据库中


1 | xyz | 9986799867

假设我接到电话,它会像+919986799867

我的搜索失败,因为传入号码中存在+91不匹配,但本地数据库不存在。

如果我在联系人DB上执行相同的搜索,

Cursor cursor = ct.getContentResolver().query(contactUri, projection, null, null, null);

它提供了正确的名称。这是系统搜索,你能告诉它内部如何处理

2 个答案:

答案 0 :(得分:1)

您可以使用以下库将包含国家/地区代码的数字与不在Java中的数字进行比较:

libphonenumber-6.2.2.jar

使用此库,您可以使用 isNumberMatch ,如果数字匹配,则返回true。

你可以在这里找到更多信息:

LibPhoneNnumber GitHub

答案 1 :(得分:0)

选项1:首先找到手机号码长度10表示直接调用选择查询,否则使用substring方法在调用select查询后获取最后10位数字 选项2:使用国家/地区代码保存手机号码