获取联系人信息查看方案

Android 系统的联系人机制,算是玩得比较溜的老生常谈了。像社交 App、电话助手啥的,基本都少不了它。这里推荐一个蛮实用的代码方案:通过手机号直接拿到联系人的姓名、头像还有电话号码。嗯,就是用这个老朋友配合来搞定。

联系人信息是存在系统的 SQLite 数据库里的,Android 已经帮你封装好了各种字段。像Contacts表是主信息,RawContacts存的是账号层级的原始数据,真正丰富的内容,比如电话、头像,其实都在Data表里。

你只要写一段类似这样的查询代码:

Uri contactUri = Uri.withAppendedPath(ContactsContract.CommonDataKinds.Phone.CONTENT_FILTER_URI, phoneNumber);
Cursor cursor = context.getContentResolver().query(contactUri, null, null, null, null);

拿到cursor,逐条取出名字、头像 Uri 和号码。头像可以用loadContactPhoto()转成Bitmap,用来显示在ImageView里还挺方便。

注意哦,一个联系人不止一个电话,所以结果会有多条记录。还有,记得检查权限,别忘了READ_CONTACTS

为了代码整洁,建议你封装一个工具类,比如ContentProviderContacts,专门这些查询逻辑,方法像getContactByPhoneNumber(String phoneNumber)这种,拿来就用,省事儿多了。

如果你经常做跟联系人打交道的功能,这种代码结构清晰、调用方便的方案,还真挺值得收藏一个。

zip 文件大小:152.01KB