//获取联系人的姓名、电话信息
 public List<ContactInfo> getContact()
 {                 
         //取得ContentResolver
         ContentResolver content = getContentResolver();                                 
         Uri uri = ContactsContract.Contacts.CONTENT_URI;                //联系人的URI
         Cursor cursor = content.query(uri,null, null, null, null);
         int contactCount = cursor.getCount();                //获得联系人数目
  
         List<ContactInfo> contacts = new ArrayList<ContactInfo>(contactCount);         
  
         if (cursor.moveToFirst())
         {
                 // 循环遍历
                 for (;!cursor.isAfterLast();cursor.moveToNext())
                 {
                         List<String> allPhoneNum = null;
                         ContactInfo contact = new ContactInfo();
                                          
                         int idColumn = cursor.getColumnIndex(ContactsContract.Contacts._ID);
                         int displayNameColumn = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
                         int phoneColumn = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);                         
                  
                         // 获得联系人的ID号
                         String contactId = cursor.getString(idColumn);
                         contact.setContactId(contactId);
                         // 获得联系人姓名
                         String disPlayName = cursor.getString(displayNameColumn);
                         contact.setContactName(disPlayName);
                  
                         // 电话号码的个数
                         //String phoneString = cursor.getString(phoneColumn);
                         int phoneNum = cursor.getInt(phoneColumn);
                                                  
                         if (phoneNum > 0)
                         {
                                 // 获得联系人的电话号码的cursor;
                                 Cursor phones = content.query(
                                                 ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                                 null,
                                                 ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId, 
                                                 null, null);
                          
                                 int phoneCount = phones.getCount();
                                 allPhoneNum = new ArrayList<String>(phoneCount);
                                 if (phones.moveToFirst())
                                 {
                                         // 遍历所有的电话号码
                                         for (;!phones.isAfterLast();phones.moveToNext())
                                         {                                                 
                                                 String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                                                 allPhoneNum.add(phoneNumber);
                                         }
                                  
                                         if (!phones.isClosed())
                                         {
                                                 phones.close();
                                         }
                                 }
                         }
                  
                         contact.setContactPhone(allPhoneNum);
                         contacts.add(contact);
                 }
          
                 if (!cursor.isClosed())
                 {
                         cursor.close();
                 }
         }
         return contacts;

}

public class ContactInfo
{
 private String contactId;
 private String contactName;
 private List<String> contactPhone;
 
 public String getContactId()
 {
         return contactId;
 }
 
 public String getContactName()
 {
         return contactName;
 }
 
 public List<String> getContactPhone()
 {
         return contactPhone;
 }
 
 public void setContactId(String id)
 {
         contactId = id;
 }
 
 public void setContactName(String name)
 {
         contactName = name;
 }
 
 public void setContactPhone(List<String> phone)
 {
         contactPhone = phone;
 }

}

获得联系人姓名、电话号码的方法相关推荐

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

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

  2. 获取手机联系人信息(姓名 电话号码)

    手机的联系人信息,存放的位置分为两种.一种存放在手机内存里面,一种是存放在sim卡里面. 他们的访问方式都相似,都是把电话号码和联系人姓名是分开存放在数据库中的,只是访问的uri不同. 本文主要讲的是 ...

  3. 根据电话号码查找通讯录中联系人姓名

    方法一 参照google文档的说明进行的查找操作: google文档query说明如下(第二条): Query If you need to read an individual contact, c ...

  4. 根据电话号码获取联系人姓名

    以下是根据一个已知的电话号码,从通讯录中获取相对应的联系人姓名的代码: [java] view plain copy print ? public String getContactNameFromP ...

  5. Android中 根据电话号码获取联系人姓名

    以下是根据一个已知的电话号码,从通讯录中获取相对应的联系人姓名的代码: public String getContactNameFromPhoneBook(Context context, Strin ...

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

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

  7. android 通过电话号码来获取联系人姓名

    通过电话号码来获取联系人姓名的程序如下,通过ContactsContract.PhoneLookup.CONTENT_FILTER_URI来获取对应adress(电话号码)的信息. private S ...

  8. Android根据电话号码取得联系人姓名及头像

    2      * 根据电话号码取得联系人姓名  3      */  4     public static String getContactNameByPhoneNumber(Context co ...

  9. android 联系人编辑界面,android – 以编程方式编辑联系人的姓名/电话号码

    我试图以编程方式修改联系人的显示名称: try { ArrayList ops = new ArrayList(); ops.add(ContentProviderOperation.newUpdat ...

最新文章

  1. Oracle 物理结构(六) 文件-数据文件
  2. pytorch nan解决方法笔记
  3. Python超详细的字符串用法大全
  4. 科大星云诗社动态20211008
  5. git 一口气带你走完git之旅
  6. windows无法启动oracleremexecservice服务_Windows下MySQL无法启动万能解决方案
  7. app之---豆果美食
  8. Ext js tabpanel的使用
  9. 这种反爬虫手段有点意思,看我破了它!
  10. Mysql8.0安装+navicat for Mysql安装+navicat for Mysql。
  11. c语言 静态断言,C断言/静态断言
  12. html的兼容有哪些,HTML里需要兼容验证的浏览器有哪些
  13. 如何实现一个php框架系列文章【2】实现类的自动加载
  14. Origin | 图形动画制作
  15. Educational Codeforces Round 140 (Rated for Div. 2)A~D题解
  16. Linux C语言调用C++动态链接库-改
  17. Nginx启动失败的几种错误处理
  18. 温漂:元器件温度系数TCR
  19. 01--python 中的列表list 练习题
  20. Skr-Eric的网络编程课堂(八)-- 信号通信、信号量、进程的同步互换和Lock锁

热门文章

  1. 十三.人脸检测和车牌识别
  2. 一文讲清楚以太坊的nonce
  3. HTML经过按钮时按钮变大,html – 调整按钮大小
  4. Fcoin事件背后的良心与底线
  5. 将pem证书转换为crt/key
  6. 网站流量统计与网站访问分析
  7. PCM音频文件格式的头信息
  8. 【第二周】Java实现英语文章词频统计
  9. Java关于对象的相等判断问题(equals)
  10. 量化研究 | CTA择时出场策略指南大全