从Android 2.0 SDK开始有关联系人provider的类变成了ContactsContract,虽然老的android.provider.Contacts能用,但是在SDK中标记为为deprecated将被放弃不推荐的方法,而从Android 2.0及API Level为5开始新增了android.provider.ContactsContract来代替原来的方法。
ContactsContract的子类ContactsContract.Contacts是一张表,代表了所有联系人的统计信息。比如联系人ID(—ID),查询键(LOOKUP_KEY),联系人的姓名(DISPLAY_NAME_PRIMARY),头像的id([url=]PHOTO_ID[/url])以及群组的id等等。
我们可以通过以下的方法取得所有联系人的表的Cursor对象:
1)ContentResolver contentResolver=getContentResolver();
2)Cursor cursor=contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);//根据URI对象ContactsContract.Contacts.CONTENT_URI查询所有联系人;
从Cursor对象里我们关键是要取得联系人的_id。通过它,再通过ContactsContract.CommonDataKinds的各个子类查询该_id联系人的电话(ContactsContract.CommonDataKinds.Phone),email(ContactsContract.CommonDataKinds.Email) 等等。
以取得该联系人所有电话为例:
1)int idFieldIndex=cursor.getColumnIndex(ContactsContract.Contacts._ID);
int id=cursor.getInt(idFieldIndex);//根据列名取得该联系人的id;
2)Cursor phonecursor=contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"=?", new String[]{Integer.toString(id)}, null);
ContactsContract.CommonDataKinds.Phone中根据查询相应id联系人的所有电话;
类似地可以ContactsContract.CommonDataKinds的不同的子类查询不同的内容。android文档告诉我们推荐使用 ContactsContract.Contacts.LOOKUP_KEY代替ContactsContract.Contacts._ID。
分享到:
相关推荐
// 获取手机联系人 Cursor phoneCursor = resolver.query( Phone.CONTENT_URI, new String[]{Phone.CONTACT_ID, Phone.DISPLAY_NAME, Phone.NUMBER}, Phone.DISPLAY_NAME + "=?" + " AND " + Phone.TYPE + "='...
在安卓(Android)平台上,开发...以上就是关于“安卓Android源码——获取手机通讯录的实战应用(含SIM卡中的联系人)”的核心知识点。在实际开发中,理解并熟练运用这些概念和API,将使你能创建功能丰富的通讯录应用。
在Android开发中,获取手机通讯录联系人信息并实现点击直接拨打电话的功能是常见的需求,这对于构建各种社交、工具类应用至关重要。以下将详细介绍如何实现这个功能。 首先,要访问手机通讯录,我们需要请求读取...
在Android开发中,获取手机通讯录并实现联系人选择功能是一项常见的需求,尤其在构建具有社交元素的应用时。本文将详细解析如何通过源码实现这一功能,包括从手机通讯录读取联系人信息、列表展示、多选机制以及返回...
本文将深入探讨如何利用DCloud HTML5的特性来打开用户手机的通讯录,并获取联系人数据。 首先,我们需要理解DCloud HTML5的核心概念。DCloud是一个一站式的移动应用开发平台,它提供HTML5+CSS3+JavaScript的开发...
在Android平台上,获取通讯录联系人信息是常见的需求,尤其对于开发涉及社交功能的应用来说更是必不可少。本示例源码提供了实现这一功能的方法,帮助开发者深入理解如何在Android应用中读取并操作用户通讯录数据。 ...
在Android平台上,获取手机通讯录联系人是一项常见的任务,尤其对于开发者来说,了解如何快速而全面地读取这些数据是至关重要的。这篇博客"快速读取全部手机通讯录联系人"提供了一个高效的方法来实现这一功能。下面...
在Android操作系统中,获取手机通讯录信息是一项常见的功能,它涉及到读取用户联系人数据的权限和使用Android提供的API。本文将深入探讨如何在Android应用中实现这一功能,包括所需的权限设置、API调用以及实际操作...
在Android平台上,获取手机通讯录信息是常见的功能需求,尤其对于开发社交类或者管理类应用来说,这是一项基本操作。本`Android获取手机通讯录信息demo`提供了简单易用的方法来实现这一功能。下面我们将详细探讨相关...
总之,"Android应用源码获取手机通讯录的实战应用(含SIM卡中的联系人.zip"是一个宝贵的教育资源,它涵盖了Android开发中获取通讯录的基本步骤和技巧,同时也展示了如何处理SIM卡中的联系人。对于想要提升Android应用...
本实战应用主要探讨如何在Android系统中获取设备上的通讯录,包括存储在手机内部存储器以及SIM卡中的联系人。以下是关于这个主题的详细讲解。 1. **Android权限管理** 在Android中,获取通讯录数据需要请求`READ_...
在Android平台上,获取手机通讯录是一项常见的功能,它涉及到用户数据的访问和处理。这篇详细的说明将引导你了解如何在Android设备上实现这一操作,包括客户端和服务端的交互。 首先,我们要理解Android客户端如何...
在Android平台上,获取手机通讯录是一项常见的功能,无论是开发社交应用、备份工具还是其他与通讯相关的应用程序,都需要访问用户手机的联系人数据。本实战应用将深入探讨如何从设备内部存储以及SIM卡中读取联系人...
在移动设备上,获取手机通讯录是常见的需求,这通常涉及到读取、编辑或备份联系人信息。在本文中,我们将深入探讨如何在Android和iOS系统中实现这一功能,以及涉及的相关API和技术。 首先,我们关注Android平台。...
在Android软件开发中,获取通讯录联系人信息是一项常见的功能,尤其对于社交或者管理类的应用来说,这是一项必备技能。本文将深入探讨如何在Android平台上实现这一功能。 首先,我们需要了解Android系统的权限管理...
如果SIM卡上的联系人被同步到手机通讯录,那么也可以通过`ContactsContract`来获取。 在处理联系人数据时,需要注意隐私问题,遵循GDPR等相关法规,确保用户知情并获得许可才能访问其联系人数据。此外,为提高性能...
这个名为"Android代码-Android手机的通讯录联系人信息.zip"的压缩包可能包含了一个Android应用的源代码,该应用与读取、修改或管理手机上的通讯录联系人信息有关。下面将详细介绍Android平台中处理通讯录联系人信息...
在Android平台上,获取手机通讯录是一项常见的功能,无论是开发社交应用、备份工具还是其他与通信相关的应用程序,都需要访问用户手机的联系人数据。本实战应用将深入探讨如何从设备内部存储以及SIM卡中读取联系人...
通过上述步骤,开发者可以构建一个能够获取手机通讯录(包括SIM卡中的联系人)的应用。实际开发中,还需考虑不同Android版本的兼容性、用户界面设计、错误处理等多个方面,以提供良好的用户体验。