我正在尝试获取与给定电话号码相匹配的联系人列表,有人可以建议我如何在Android中执行此操作。
例如,我有3个电话号码[883338383,93939311,89898999],它们是用于搜索的输入。我需要获得与这些数字匹配的联系人列表。
答案 0 :(得分:0)
您可以指定URI和查询以获取电话号码的联系信息。
Uri contactUri = Uri.withAppendedPath(Contacts.Phones.CONTENT_FILTER_URL, Uri.encode(phoneNumber));
Cursor cursor = mContext.getContentResolver().query(contactUri, null, null, null, null);
上面代码返回的光标应包含您要查找的联系人,您可以解析它以获取所需信息:
if(cursor.moveToFirst()){
int personIDIndex = cursor.getColumnIndex(Contacts.Phones.PERSON_ID);
//etc
}
如果没有与给定号码联系,则查询将返回null。因此,请确保在准备之前t0检查光标是否为空值,否则您将获得NullPointerException
。