Android基础:获取手机联系人工具类
2016-04-21 21:06
417 查看
Bean:
public class ContactInfo {
public String id;
public String name;
public String phone;
}
ContactUtils.java
public class ContactUtils {
/**
* 获取联系人数据
*
* @param context
* @return
*/
public static List<ContactInfo> getAllContacts(Context context) {
List<ContactInfo> list = new ArrayList<ContactInfo>();
// 获取解析者
ContentResolver resolver = context.getContentResolver();
// 访问地址
Uri raw_contacts = Uri.parse("content://com.android.contacts/raw_contacts");
Uri data = Uri.parse("content://com.android.contacts/data");
// 查询语句
// select contact_id from raw_contacts;//1 2 3 4
// select mimetype,data1 from view_data where raw_contact_id=3;
// Cursor cursor=resolver.query(访问地址, 返回字段 null代表全部, where 语句, 参数, 排序)
Cursor cursor = resolver.query(raw_contacts, new String[] { "contact_id" }, null, null, null);
while (cursor.moveToNext()) {
// getColumnIndex根据名称查列号
String id = cursor.getString(cursor.getColumnIndex("contact_id"));
// 创建实例
ContactInfo info = new ContactInfo();
info.id = id;
Cursor item = resolver.query(data, new String[] { "mimetype", "data1" }, "raw_contact_id=?", new String[] { id }, null);
while (item.moveToNext()) {
String mimetype = item.getString(item.getColumnIndex("mimetype"));
String data1 = item.getString(item.getColumnIndex("data1"));
if ("vnd.android.cursor.item/name".equals(mimetype)) {
info.name = data1;
} else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {
info.phone = data1;
}
}
item.close();
// 添加集合
list.add(info);
}
cursor.close();
return list;
}
}
public class ContactInfo {
public String id;
public String name;
public String phone;
}
ContactUtils.java
public class ContactUtils {
/**
* 获取联系人数据
*
* @param context
* @return
*/
public static List<ContactInfo> getAllContacts(Context context) {
List<ContactInfo> list = new ArrayList<ContactInfo>();
// 获取解析者
ContentResolver resolver = context.getContentResolver();
// 访问地址
Uri raw_contacts = Uri.parse("content://com.android.contacts/raw_contacts");
Uri data = Uri.parse("content://com.android.contacts/data");
// 查询语句
// select contact_id from raw_contacts;//1 2 3 4
// select mimetype,data1 from view_data where raw_contact_id=3;
// Cursor cursor=resolver.query(访问地址, 返回字段 null代表全部, where 语句, 参数, 排序)
Cursor cursor = resolver.query(raw_contacts, new String[] { "contact_id" }, null, null, null);
while (cursor.moveToNext()) {
// getColumnIndex根据名称查列号
String id = cursor.getString(cursor.getColumnIndex("contact_id"));
// 创建实例
ContactInfo info = new ContactInfo();
info.id = id;
Cursor item = resolver.query(data, new String[] { "mimetype", "data1" }, "raw_contact_id=?", new String[] { id }, null);
while (item.moveToNext()) {
String mimetype = item.getString(item.getColumnIndex("mimetype"));
String data1 = item.getString(item.getColumnIndex("data1"));
if ("vnd.android.cursor.item/name".equals(mimetype)) {
info.name = data1;
} else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {
info.phone = data1;
}
}
item.close();
// 添加集合
list.add(info);
}
cursor.close();
return list;
}
}
相关文章推荐
- 最近进行Android移植以及NDK开发的编外心得
- Android如何防止apk程序被反编译
- 学习Android从0开始之ActionBar(活动条)之提高篇
- android pdf阅读开发
- Android基础:MD5加密
- Android中对SD卡的读取与写入
- Android实现点击更换头像
- MTK android配置LCD背光和LED
- android圆形ImageView
- android按返回键和Home键都进入后台
- Android中一个Activity第二次启动时,onCreate()调用setContentView()方法时出错,程序崩溃
- Android 6.0权限管理,sdk>=23请求权限
- Android 发送短信
- Android 打电话程序
- Android屏幕分辨率
- Android坐标系分析
- Android Studio、Java安装及环境变量配置
- Android按照拼音排序获取联系人并根据拼音首字母获取联系人
- 【笔记】android 多线程同步实现方法
- android自定义loding view(下)