`
butter
  • 浏览: 125350 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android 获取联系人的姓名、电话信息

 
阅读更多

//获取联系人的姓名、电话信息
 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;
 }

}
 
分享到:
评论

相关推荐

    查看并获取联系人电话

    在Android和iOS等移动操作系统中,查看和获取联系人电话是一项常见的功能,广泛应用于社交应用、通讯工具和其他需要用户授权访问联系人信息的软件中。本文将深入探讨如何在这些平台上实现这一功能。 首先,我们从...

    Android获取联系人列表Demo

    `DISPLAY_NAME`字段用于获取联系人姓名,`PHONE_NUMBER`字段用于获取电话号码。根据实际需求,你还可以添加更多字段,如电子邮件地址、生日等。 最后,我们将这些联系人信息显示在一个ListView或者其他UI组件上,...

    Android 获取通讯录联系人信息源码

    例如,获取联系人姓名和电话号码: ```java while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); long contactId = cursor....

    Android 获取系统联系人并发送短信demo

    5. **处理数据**:在遍历过程中,可以通过getString()方法获取指定列的值,如获取联系人的名字和电话号码。 **发送短信** 发送短信涉及到使用SmsManager类。以下是如何发送短信的基本步骤: 1. **请求权限**:...

    Android获取联系人

    以下是对"Android获取联系人"这一主题的详细讲解。 首先,Android系统中的联系人数据存储在SQLite数据库中,开发者可以通过ContentProvider接口访问这些数据。ContactsContract类是Android提供的一个内容提供者...

    android 获取手机通讯录联系人信息 点击直接拨打电话

    在Android开发中,获取手机通讯录联系人信息并实现点击直接拨打电话的功能是常见的需求,这对于构建各种社交、工具类应用至关重要。以下将详细介绍如何实现这个功能。 首先,要访问手机通讯录,我们需要请求读取...

    android 联系人 SIM卡 最近联系人 通讯录 获取源代码

    在Android开发中,获取联系人、SIM卡信息以及最近联系人列表是常见的需求。下面将详细解释这些概念和实现方式。 一、Android联系人管理 Android系统提供了ContentProvider接口来访问和操作联系人数据。主要涉及到...

    Android 简单的获取联系人的信息

    在Android平台上,获取联系人信息是一项常见的任务,尤其在开发涉及个人信息管理的应用时。这个过程涉及到权限管理、ContentResolver的使用以及对ContactsContract类的理解。本文将深入探讨如何实现"Android简单的...

    Android通讯录管理(获取联系人、通话记录、短信消息)

    这篇教程将深入探讨如何在Android应用中获取联系人信息、通话记录以及短信消息。首先,我们来了解一下基本概念。 1. **获取联系人信息**: Android提供了一套完整的API来访问和操作联系人数据。主要涉及`...

    android 获取手机联系人

    在Android平台上,获取手机联系人是一项常见的功能,它允许应用访问设备上的通讯录信息,比如姓名、电话号码、电子邮件地址等。以下是一个关于如何在Android中实现这一功能的详细讲解。 首先,为了获取手机联系人,...

    基于android studio的读取联系人并可点击拨打电话

    接下来,遍历Cursor获取联系人信息,并将其显示在ListView或者RecyclerView等组件上。例如: ```java if (cursor != null) { while (cursor.moveToNext()) { String name = cursor.getString(cursor....

    Android通讯录姓名手机号获取,打电话发短信功能。

    在Android平台上,获取用户的联系人信息以及实现打电话和发送短信的功能是常见的应用场景,尤其是在开发社交或者通讯类应用时。下面将详细讲解如何在Android Studio中实现这些功能。 首先,我们需要了解Android的...

    获取联系人信息进行查看

    本教程将详细讲解如何通过电话号码获取联系人的头像、姓名和电话等信息,这些功能通常涉及到Android的Content Provider机制。Content Provider是Android提供的一种数据共享方式,它允许应用程序之间共享和访问数据。...

    Android 读取联系人信息

    在Android平台上,获取联系人信息是一项常见的功能,它允许应用程序访问用户的电话簿,展示联系人的姓名、电话号码、电子邮件地址等。本节将详细讲解如何在Android应用中读取联系人信息,以及与之相关的`firstname`...

    android获取短信并匹配姓名的几种方法

    如果Cursor有数据,`contactCursor.getString(0)`将返回对应电话号码的联系人姓名。 3. **处理无匹配的发件人姓名**: 当系统中没有对应电话号码的联系人时,发件人姓名可能为空。在这种情况下,可以考虑以下几个...

    android读取联系人信息,姓名,电话,头像

    2. **获取联系人姓名**: - 在查询时,确保包含`ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME`这一列,它代表联系人的显示名称。 - 遍历Cursor时,使用`cursor.getString(cursor.getColumnIndex...

    android获取单个通讯录联系人信息并分享内容(短信邀请)

    接下来,我们需要了解如何使用`ContactsContract`类来获取联系人信息。`ContactsContract`是Android提供的一个ContentProvider接口,用于访问系统联系人数据库。以下是获取单个联系人信息的基本步骤: 1. 创建...

    Android软件开发之获取通讯录联系人信息

    例如,要获取联系人的电子邮件地址,可以使用`ContactsContract.CommonDataKinds.Email`对应的URI和列名: ```java Cursor emailCursor = resolver.query( ContactsContract.CommonDataKinds.Email.CONTENT_URI, ...

    Androidの联系人群组Group操作

    通过查询`ContactsContract.Data`表,结合`ContactsContract.CommonDataKinds.GroupMembership`的数据类型,可以获取联系人所属的所有群组。 8. **权限管理** 记住,进行任何联系人操作都需要在AndroidManifest....

    android获取联系人名单

    在Android平台上,获取联系人名单是一项常见的功能,尤其在开发社交、通讯或者管理类应用程序时。这个过程涉及到Android系统的权限管理、Content Provider以及SQLite数据库的交互。本文将深入讲解如何在Android应用...

Global site tag (gtag.js) - Google Analytics