从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。
分享到:
相关推荐
Android 使用获取手机通讯录的姓名,电话,头像和邮箱实现
最近学习了iOS获取手机通讯录方式方法,现在分享给大家。希望此文章对各位有所帮助。 一、iOS 9 以前的通讯录框架 AddressBookUI框架:提供了联系人列表界面、联系人详情界面、添加联系人界面等,一般用于选择联系...
python123_第三次_通讯录转换_contacts
contacts, 从功能丰富的网页界面管理你的多通讯录联系人 ownCloud联系人 为 ownCloud 联系人应用这是新的联系人应用已经取代了旧的联系人应用程序,并且只是新服务器集成多功能后端的前端。 维护者:托马斯。托马斯...
android4.0 Contacts 通讯录源码
仿IOS手机通讯录效果: 1.获取手机联系人; 2.首字母排序显示; 3.搜索联系人连动; 4.显示联系人信息 5.拨打电话
iOS中获取手机通讯录中的联系人信息: /*** 加载本地联系人*/ - (void)loadLocalContacts { //新建一个通讯录类 ABAddressBookRef addressBooks = nil; if (DeviceVersion < 6.0) { addressBooks = ...
通讯录\ 1) 利用SQlite设计一个通讯录,要求包含:姓名,电话,工作单位以及家庭住址信息。Check 2) 显示时按照姓名进行排序。Check 3) 支持通过通讯录直接拨打电话。Check 4) 支持针对姓名的搜索功能,Check
Phonegap 获取 所有联系人 此版本是cordova 3.4的 调用系统的API 经过修改 迭代出所有联系人 贴上完整代码 我的博客:http://blog.csdn.net/aaawqqq?viewmode=list
PPGetAddressBook对AddressBook框架(iOS9之前)和Contacts框架(iOS9之后)做了对应的封装处理; 支持获取按联系人姓名首字拼音A~Z排序(重点:已经对姓名的第二个字做了处理,排序更准确!);
MATLAB通讯录软件分享-contacts.rar 这是十月份写的一个小程序,在博客中分享过了(http://hi.baidu.com/lskyp),借用论坛人气再分享一次:lol :lol 使用MATLAB GUIDE,允许运行界面如下,可以载入已存在的...
2.获取通讯录姓名和手机号码 3.回调显示姓名和手机号码 1首先是跳转到通讯录界面 Uri uri = Uri.parse(content://contacts/people); Intent intent = new Intent(Intent.ACTION_PICK, uri); startActivityForResult...
本文实例为大家分享了Android读取手机通讯录联系人到项目的具体代码,供大家参考,具体内容如下 一、主界面代码如下: android:layout_width=match_parent android:layout_height=match_parent android:...
仿安卓手机通讯录,利用html5本地数据库对数据进行增删改查,可通过Hbuilder打包成apk文件安装到手机,利用HTML5+规范的Contacts模块的plus.contacts.getAddressBook读取手机通讯录,讲读取内容导入到本地数据库
这是自己做的获取Android手机系统联系人及联系人图片,点击对应的联系人会拨打电话。
sms读取短信和contacts获取联系人
本文实例讲述了Android编程基于Contacts读取联系人的方法。分享给大家供大家参考,具体如下: Android Contacts简介: 这里介绍安卓通讯录数据库。包括Android使用Contacts访问SQLite的基本知识,并了解Android ...
本文实例讲述了Android编程实现通讯录中联系人的读取,查询,添加功能。分享给大家供大家参考,具体如下: 先加二个读和写权限: <uses android:name=android.permission.READ_CONTACTS> ...
作者jkpang,源码PPGetAddressBook,一行代码获取通讯录联系人,并进行A~Z排序( 已对名字第二个字做排序处理 ), PPGetAddressBook对AddressBook框架(iOS9之前)和Contacts框架(iOS9之后)做了对应的封装处理; 支持...