获取联系人信息查看方案
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)
这种,拿来就用,省事儿多了。
如果你经常做跟联系人打交道的功能,这种代码结构清晰、调用方便的方案,还真挺值得收藏一个。
152.01KB
文件大小:
评论区