package com.wanggjie.weishi.utils;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.text.TextUtils;
import java.util.ArrayList;
import java.util.List;
/**
* @author 王杰
* @time 2017/2/13 1:09
* @desc 获取联系人数据
*/
public class ContactUtils {
private static ContactBean mContactBean;
/**
* 定义一个获取全部联系人的方法
*
* @param context
*/
public static List<ContactBean> getAllContacts(Context context) {
List<ContactBean> contacts = new ArrayList<ContactBean>();
//创建一个内容解析者对象
ContentResolver resolver = context.getContentResolver();
//获取到手机系统内部已经定义好的uri
Uri contactUri = Uri.parse("content://com.android.contacts/contacts");
Uri dataUri = Uri.parse("content://com.android.contacts/data");
//进行查询操作,拿到游标对象
/**
* @param projection
* 指定查询的列名
* @param selection
* 查询条件的字符串
* @param selectionArgs
* 查询条件的绑定值
*/
Cursor cursor = resolver.query(contactUri, new String[]{"_id"}, null, null, null);
while (cursor.moveToNext()) {
String _id = cursor.getString(0);
//对id做非空判断
if (!TextUtils.isEmpty(_id)) {
mContactBean = new ContactBean();
Cursor datacursor = resolver.query(dataUri, new String[]{"mimetype", "data1"}, "raw_contact_id=?", new String[]{_id}, null);
while (datacursor.moveToNext()) {
String mimetype = datacursor.getString(0);
String data = datacursor.getString(1);
//从联系人数据库拿到匹配的数据类型,进行匹配
if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {
mContactBean.phone = data;
} else if ("vnd.android.cursor.item/name".equals(mimetype)) {
mContactBean.name = data;
}
}
contacts.add(mContactBean);
}
}
return contacts;
}
//创建一个bean对象来封装数据
public static class ContactBean {
public String name;
public String phone;
}
}
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.text.TextUtils;
import java.util.ArrayList;
import java.util.List;
/**
* @author 王杰
* @time 2017/2/13 1:09
* @desc 获取联系人数据
*/
public class ContactUtils {
private static ContactBean mContactBean;
/**
* 定义一个获取全部联系人的方法
*
* @param context
*/
public static List<ContactBean> getAllContacts(Context context) {
List<ContactBean> contacts = new ArrayList<ContactBean>();
//创建一个内容解析者对象
ContentResolver resolver = context.getContentResolver();
//获取到手机系统内部已经定义好的uri
Uri contactUri = Uri.parse("content://com.android.contacts/contacts");
Uri dataUri = Uri.parse("content://com.android.contacts/data");
//进行查询操作,拿到游标对象
/**
* @param projection
* 指定查询的列名
* @param selection
* 查询条件的字符串
* @param selectionArgs
* 查询条件的绑定值
*/
Cursor cursor = resolver.query(contactUri, new String[]{"_id"}, null, null, null);
while (cursor.moveToNext()) {
String _id = cursor.getString(0);
//对id做非空判断
if (!TextUtils.isEmpty(_id)) {
mContactBean = new ContactBean();
Cursor datacursor = resolver.query(dataUri, new String[]{"mimetype", "data1"}, "raw_contact_id=?", new String[]{_id}, null);
while (datacursor.moveToNext()) {
String mimetype = datacursor.getString(0);
String data = datacursor.getString(1);
//从联系人数据库拿到匹配的数据类型,进行匹配
if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {
mContactBean.phone = data;
} else if ("vnd.android.cursor.item/name".equals(mimetype)) {
mContactBean.name = data;
}
}
contacts.add(mContactBean);
}
}
return contacts;
}
//创建一个bean对象来封装数据
public static class ContactBean {
public String name;
public String phone;
}
}