获取手机系统联系人的方法;
/**
* 获取系统联系人数据;
*/
private void initData() {
// 读取联系人是耗时操作启动一个线程来查询;
new Thread() {
public void run() {
// 获取内容解析器
ContentResolver contentResolver = getContentResolver();
// 查询系统联系人表过程;(读取联系人权限)
Cursor cursor = contentResolver.query(Uri
.parse("content://com.android.contacts/raw_contacts"),
new String[] { "contact_id" }, null, null, null);
// 循环游标到没有数据为止;
while (cursor.moveToNext()) {
String id = cursor.getString(0);
// 根据用户唯一的id查询到了data表和mimetype 表形成的视图获取data以及mimetype字段;
if (id!=null) {
Cursor indexcCursor = contentResolver
.query(Uri
.parse("content://com.android.contacts/data"),
new String[] { "data1", "mimetype"// data1可能是电话号码也可能是姓名;mimetype
// 是电话号码的类型也可能是姓名所对应的类型;
}, "raw_contact_id = ? ",
new String[] { id }, null);
while (indexcCursor.moveToNext()) {
String idString = indexcCursor.getString(0);
String typeString = indexcCursor.getString(1);
}
}
}
cursor.close();
};
}.start();
}