Android 获取手机联系人信息
//获取联系人
Uri rawContacts = Uri.parse("content://com.android.contacts/raw_contacts");
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(rawContacts, null, null, null, null);
while (cursor.moveToNext()) {
String contactId = cursor.getString(cursor.getColumnIndex("contact_id"));
Uri dataUri = Uri.parse("content://com.android.contacts/data");
System.out.println("联系人id = " + contactId);
Cursor dataCursor = contentResolver.query(dataUri, null, "contact_id=?", new String[]{contactId}, null);
while (dataCursor.moveToNext()) {
System.out.println("联系人名称="+dataCursor.getString(dataCursor.getColumnIndex("data1")));
System.out.println("数据类型="+dataCursor.getString(dataCursor.getColumnIndex("mimetype")));
}
dataCursor.close();
System.out.println("——————————————");
}
cursor.close();
通信录的相关数据也保存在数据库文件中,保存的路径为:/data/data/com.android.providers.contacts/databases/contacts2.db。我们在通讯录界面上添加联系人时,内部实际上是通过ContentProvider向数据库中添加记录。通讯录的界面应用与ContentProvider应用是分开的。通讯录界面应用的保存位置为:/data/data/com.android.contacts。
常用的几张表如下:
表raw_contacts:存放联系人的ID
字段display_name:存放姓+名的组合,便于快速得到用户的姓名。注意,当向该表添加联系人时该字段是为null的,只有在向data表中添加姓名时,才会发出update语句来更新该字段。
表data:存放联系人的详细信息,如姓名、手机等,主要几个字段的含义如下:
字段data1:存放具体数据
字段data2:对于电话号码,存放类型:家庭电话、手机号等,2代表手机号
对于邮箱,存放类型
对于姓名,存放名字部分,data3存放姓氏部分
字段mimetype_id:区分数据的类型,5-电话数据,6-姓名数据,1-email数据,对应表mimetypes中的记录ID
这两个表的对应关系是:raw_contacts 1:N data
表mimetypes:数据的类型,如下图:

使用ContentResolver对通信录中的数据进行添加、删除、修改和查询操作,需要加入读写联系人信息的权限
<uses-permissionandroid:name="android.permission.READ_CONTACTS" />
<uses-permissionandroid:name="android.permission.WRITE_CONTACTS" />
文章参考了:http://hi.baidu.com/sonmeika/item/19e46c728f61ab356cc37c46
Android 获取手机联系人信息的更多相关文章
- android利用ContentResolver访问者获取手机联系人信息
转载自:http://www.jb51.net/article/106379.htm 首先需要在AndroidManifest.xml文件中添加权限: <uses-permission andr ...
- Expo大作战(三十九)--expo sdk api之 DocumentPicker,Contacts(获取手机联系人信息),Branch
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- android -------- 获取手机设备信息
最近在开发中,需要用到一些系统信息,总结了一下 /** * Created by zhangqie on 2019/2/26 * Describe: 系统工具类 */ public class Equ ...
- Android 获取手机信息,设置权限,申请权限,查询联系人,获取手机定位信息
Android 获取手机信息,设置权限,申请权限,查询联系人,获取手机定位信息 本文目录: 获取手机信息 设置权限 申请权限 查询联系人 获取手机定位信息 调用高德地图,设置显示2个坐标点的位置,以及 ...
- Android软件开发之获取通讯录联系人信息
Android手机的通讯录联系人全部都存在系统的数据库中,如果须要获得通讯里联系人的信息就须要访问系统的数据库,才能将信息拿出来. 这一篇文章我主要带领同学们熟悉Android的通讯录机制. 图中选中 ...
- 【转】android 安卓APP获取手机设备信息和手机号码的代码示例
http://blog.csdn.net/changemyself/article/details/7421476 下面我从安卓开发的角度,简单写一下如何获取手机设备信息和手机号码 准备条件:一部安卓 ...
- android 安卓APP获取手机设备信息和手机号码的代码示例
下面我从安卓开发的角度,简单写一下如何获取手机设备信息和手机号码 准备条件:一部安卓手机.手机SIM卡确保插入手机里.eclipse ADT和android-sdk开发环境 第一步:新建一个andro ...
- android API版本对应的系统版本及Android获取手机和系统版本等信息的代码
学了这么久的Android,竟然一直对其API对应的名称关系一值搞不清楚,现在网上认真看了下资料,转载一个觉得写得不错的作者的文章,记下来: [背景] 之前折腾android期间,慢慢地知道了,And ...
- Android 读取手机联系人、拨号、发送短信及长按菜单的操作
本示例实现了读取手机联系人,拨号.发送短信及长按出现菜单选项的操作↓ 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下↓ a, main.xml 程序运行的主界面,主要 ...
随机推荐
- 100 high quality blogs from java developers
This list collects 100 high quality blogs from Java developers from all over the world. Some of thes ...
- 移动终端学习1:css3 Media Queries简介
移动终端学习之1:css3 Media Queries简介 1.简介 这篇文章写的不错,我就不重复了,来个链接:http://www.w3cplus.com/content/css3-media-qu ...
- hdu 1570 AC
A C Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- Yii框架页面运行流程
Yii框架页面运行流程 CComponent | CModel | CActiveRecord.CFormModel(所有模型的父类) | 表名.php(模型) | 入口文件------------- ...
- js内置函数的使用
arguments对象是一个参数对象,可以访问有操作和无操作的参数,能够获得每个参数的内容,参数的个数,例如:arguments[0];获第一个参数,arguments.length;获得参数的个数, ...
- VS 2013 编译和使用 Boost
以 1.58.0 版本 boost 为例, 当前系统版本为 Windows 8.1 x64 1 编译boost 当前解压路径 "D:\Libraries\boost_1_58_0&qu ...
- 利用Merge生成或更新新记录
-- ============================================= -- Author: <华仔> -- Create date: <2016,6,7& ...
- Android开发MVP模式解析
http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html 在开发Android应用时,相信很多同学遇到和我一样的情况,虽然 ...
- java 知识 链接
www.java2blog.com/2016/04/hashmap-in-java-with-examples.html HashMap全剖析 http://card.weibo.com/articl ...
- html表单 第四节
实例: <html> <head> <title>表单实例</title> </head> <body> <center& ...