android学习笔记-读取手机联系人
2015-07-26 11:48
561 查看
1.数据源
联系人信息是 在 /data/data/com.android.prodivers.contacts 中的数据库 contacts2.db
表: row_contacts 记录联系人的id
视图: view_data 字段:data1记录了电话号码或联系人姓名 mimetype记录类型是号码或姓名(具体看字段值)
2.获取方式和code
(1)内容提供者URI :
content://com.android.contacts/raw_contacts -> 获取 表 row_contacts中的信息
content://com.android.contacts/data -> 获取 视图 view_data中的信息
(2)code:private List<Map<String, String>> GetContacts() {
List<Map<String, String>> listResu = new ArrayList<Map<String, String>>();
// 拿到内容解析者
ContentResolver resolver = getContentResolver();
// 获取 row_contacts中的id (联系人的id)
Cursor cursor = resolver.query(
Uri.parse("content://com.android.contacts/raw_contacts"),
new String[] { "_id" }, null, null, null);
while (cursor.moveToNext()) {
Map<String, String> hashContacts = new HashMap<String, String>();
String contectId = cursor.getString(0); // 拿到联系人id
// 获取 view_data中的姓名和号码
Cursor cursorData = resolver.query(
Uri.parse("content://com.android.contacts/data"),
new String[] { "mimetype", "data1" }, "contact_id="
+ contectId, null, null);
while (cursorData.moveToNext()) {
// 判断mimetype类型 如果是电话号码
if (cursorData.getString(0).equals(
"vnd.android.cursor.item/phone_v2")) {
hashContacts.put("phone", cursorData.getString(1));
// 如果是姓名
} else if (cursorData.getString(0).equals(
"vnd.android.cursor.item/name")) {
hashContacts.put("name", cursorData.getString(1));
}
}
listResu.add(hashContacts);
cursorData.close();
}
cursor.close();
return listResu;
}
联系人信息是 在 /data/data/com.android.prodivers.contacts 中的数据库 contacts2.db
表: row_contacts 记录联系人的id
视图: view_data 字段:data1记录了电话号码或联系人姓名 mimetype记录类型是号码或姓名(具体看字段值)
2.获取方式和code
(1)内容提供者URI :
content://com.android.contacts/raw_contacts -> 获取 表 row_contacts中的信息
content://com.android.contacts/data -> 获取 视图 view_data中的信息
(2)code:private List<Map<String, String>> GetContacts() {
List<Map<String, String>> listResu = new ArrayList<Map<String, String>>();
// 拿到内容解析者
ContentResolver resolver = getContentResolver();
// 获取 row_contacts中的id (联系人的id)
Cursor cursor = resolver.query(
Uri.parse("content://com.android.contacts/raw_contacts"),
new String[] { "_id" }, null, null, null);
while (cursor.moveToNext()) {
Map<String, String> hashContacts = new HashMap<String, String>();
String contectId = cursor.getString(0); // 拿到联系人id
// 获取 view_data中的姓名和号码
Cursor cursorData = resolver.query(
Uri.parse("content://com.android.contacts/data"),
new String[] { "mimetype", "data1" }, "contact_id="
+ contectId, null, null);
while (cursorData.moveToNext()) {
// 判断mimetype类型 如果是电话号码
if (cursorData.getString(0).equals(
"vnd.android.cursor.item/phone_v2")) {
hashContacts.put("phone", cursorData.getString(1));
// 如果是姓名
} else if (cursorData.getString(0).equals(
"vnd.android.cursor.item/name")) {
hashContacts.put("name", cursorData.getString(1));
}
}
listResu.add(hashContacts);
cursorData.close();
}
cursor.close();
return listResu;
}
相关文章推荐
- 百度云消息推送机制在即时通信聊天界面的信息处理,技巧篇。
- 安卓MP3播放器开发实例(3)之进度条和歌词更新的实现
- Android四大组件之activity
- 【Intent】Android系统Intent使用大全(持续更新中...)
- Mac Android Studio SVN
- Android TextView 支持BBCode的显示
- 我的Android进阶之旅------>Android二级ListView列表的实现
- Android中SensorManager.getRotationMatrix函数:计算出旋转矩阵,
- Android TextView Html ImageGetter 图片位置不对
- Android和JS代码互相调用
- Android中保存和恢复Fragment状态的最好方法
- Android四大组件及意图和意图过滤器
- Android中Service(服务)详解
- 【攻克Android (11)】适配器视图与适配器
- Android_Audio_Omap_HAL
- Android开发笔记-----activity简述
- 优化Android Studio/Gradle构建
- Android向本地写入一个XML文件和解析XML文件
- Android中AlertDialog的简单使用
- Android Menu菜单使用