<!-- 读联系人权限 --><uses-permission android:name="android.permission.READ_CONTACTS" /><!-- 写联系人权限 --><uses-permission android:name="android.permission.WRITE_CONTACTS" /><!-- 拨号权限 --><uses-permission android:name="android.permission.CALL_PHONE" />
/**     * @param name 联系人姓名 * @描述 查询该联系人下的所有号码 * @作者 tll * @时间 2016/11/11 17:33 */
public static List<String> queryNumber(String name, Context context) {    List<String> numbers = new ArrayList<>(); Cursor cursor = null; Cursor phoneCursor = null; try {//使用ContentResolver查找联系人数据 cursor = context.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); //遍历查询结果,找到所需号码 while (cursor.moveToNext()) {//获取联系人ID String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); //获取联系人的名字 String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); if (name.equalsIgnoreCase(contactName)) {// 查看联系人有多少个号码,如果没有号码,返回0 int phoneCount = cursor .getInt(cursor .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); if (phoneCount > 0) {// 获得联系人的电话号码列表 phoneCursor = context.getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId, null, null); if (phoneCursor.moveToFirst()) {do {//遍历所有的联系人下面所有的电话号码 String phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); numbers.add(phoneNumber); } while (phoneCursor.moveToNext()); } }//使用ContentResolver查找联系人的电话号码 // Cursor phone = context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); // if (phone.moveToNext()) { // String phoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); // numbers.add(phoneNumber); // } } } cursor.close(); } catch (Exception e) { LogUtil.getLog().e(e.toString()); e.printStackTrace(); } finally {if (cursor != null) { cursor.close(); cursor = null; }if (phoneCursor != null) { phoneCursor.close(); phoneCursor = null; } }return numbers;}

转载于:https://www.cnblogs.com/baiyi168/p/6037995.html

Android 通过联系人姓名查询联系人号码相关推荐

  1. Android通讯录之快速获取联系人

    获取联系人在Android开发中经常会遇到,最近项目需要用到获取手机联系人的功能,于是写了一个先查询联系人id然后再根据id查询手机号demo,结果慢到怀疑人生(亲测联系人数据1500+).最后经过优 ...

  2. Android删除手机文件,联系人,通话记录

    下面代码作为类可以调用 public class Delete {Context context;private String[] columns = {CallLog.Calls.CACHED_NA ...

  3. Android通讯录模糊查询搜索(号码,姓名,首字母简拼,全拼),批量选取联系人

    Android通讯录模糊查询搜索(号码,姓名,首字母简拼,全拼),批量选取联系人 公司最近的项目中遇到一个需求需要读取通讯录联系人,并需要支持对联系人的模糊查询及批量选取,网上找了好几个例子,模糊查询 ...

  4. android查询联系人的电话号码,android通讯录根据手机号码查询姓名

    最近有个关于通讯录开发的需求,需求很简单:根据手机号码查询姓名.之前有获取通讯录列表的代码如下: /** * 获取本机手机联系人列表 * * @author yinbiao * @date 2016- ...

  5. Android 获取联系人姓名和电话号码信息

    ContactsContract 类是存储联系人相关信息的数据库. 获取联系人信息的URL:ContactsContract.Contacts.CONTENT_URI 几个需要用到的字段: Conta ...

  6. Android 保存号码至已有联系人,新建联系人,读取手机联系人

    添加必要的权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> & ...

  7. Android 获取联系人姓名与电话号码

    权限 <uses-permission android:name="android.permission.READ_CONTACTS" /> 跳转通讯录界面 findV ...

  8. 手机联系人姓名或号码过长无法导入到SIM卡

     手机联系人姓名或号码过长无法导入到SIM卡 [DESCRIPTION] 1. 手机联系人姓名较长:  2. 将此联系人复制到sim卡:  [结果] 提示导入失败  [期望] 导入成功,自动剪切联系人 ...

  9. Android简单获取手机联系人姓名电话号码

    1.手机上联系人数据库文件(contact2.db)存放目录:/data/data/com.android.providers.contacts 2.联系人源码位于工程目录:packages\apps ...

  10. android查看联系人姓名和手机号码

    第一步:布局文件就是一个Button,点击弹出联系人列表,选择联系人后将联系人的信息显示在两个TextView上,布局代码很简单,此处不再给出. 第二步:调到联系人选择页面并返回所选择的联系人信息可以 ...

最新文章

  1. TensorRT 3:更快的TensorFlow推理和Volta支持
  2. Android - Intentservice源码解析
  3. 注册/找回密码等功能中发送手机验证码后倒计时效果的实现(基于vue)
  4. 开启一个新的命令行窗口
  5. 【测试】接口测试介绍
  6. 基于随机游走的图嵌入之快速指南
  7. 仓储“云服务”初创公司 Clutter获得 6500 万美元 C 轮融资
  8. PyQt4, class:mouseButtons用法
  9. sigar-amd64-linux.so,sigar,no libsigar-amd64-linux.so in java.library.path
  10. vue修改数组元素方法
  11. 离散数学求交并差java代码_离散数学交并补运算、差运算、异或运算的实现--biaobiao88...
  12. otrs软件_开源 IT 服务管理软件(ITSM) - OTRS
  13. 基于ssm的电动车实名制挂牌管理系统
  14. 我与计算机1000字大学,计算机系大学生助学金申请书(1000字)
  15. java 域账户登录失败_域用户登陆,错误:无法登录到你的账户,通常可以通过从你的账户注销,然后重新登录来解决此问题...
  16. 在MingW上更新的G ++获取大量错误消息(G++ updated on MingW gets massive error messages)
  17. golang的ping检测网络实现
  18. html5 3d自动,html5 3D微信头像自动抽奖代码
  19. Milestone 系统架构 及产品白皮书
  20. 联想台式机计算机接口,接口篇:四款产品接口配置横向对比_联想ThinkCentre台式电脑_台式电脑评测-中关村在线...

热门文章

  1. centos io 查看程序_快速免费搭建自己的带有直播、分销、团购、秒杀功能的小程序商城...
  2. Spring Boot 2.x(十四):整合Redis,看这一篇就够了
  3. cloudera-agent启动File not found : /usr/sbin/cmf-agent解决办法(图文详解)
  4. 让Xcode日志输出中文
  5. Javascript 学习之路:鼠标长按事件
  6. 软件工程第一次作业程序开发历程
  7. Repeater绑定数据库
  8. flutter尽然还能有这种操作!!!
  9. 【转载】Python tips: 什么是*args和**kwargs?
  10. python 之头像上传,预览