package com.example.day07_;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
// 系统联系人Id表(raw_contacts)的URI
String user_id = “content://com.android.contacts/raw_contacts”;
//系统联系人data表的uri
String data = “content://com.android.contacts/data”;
List<User> list=new ArrayList<User>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void read(View v){
//得到内容解析者
ContentResolver contentResolver = getContentResolver();
//1:得到Id表(raw_contacts)里的联系人id
Cursor cursor = contentResolver.query(Uri.parse(user_id), new String[]{“_id”}, null, null, null);
while (cursor.moveToNext()) {
User user=new User();
//2:得到每一条ID
String id = cursor.getString(cursor.getColumnIndex("_id"));
//3:通过ID得到Data表的mimetype_id列,data1列的数据
//应该根据mimetype_id去mimetypes表里,查mimetype_id对应的数据类型,
//但是源码已经封装好了,只传"mimetype"字段,就可以查到改mimetype_id对应的数据类型
Cursor cursor_data = contentResolver.query(Uri.parse(data), new String[]{"mimetype","data1"},"raw_contact_id = ?" , new String[]{id}, null);
//4:得到同一Id的数剧
while (cursor_data.moveToNext()) {
// 先得到类型,再判断该条数据是什么类型的
// 得到mimetype列额数据
String mimetype = cursor_data.getString(cursor_data
.getColumnIndex("mimetype"));
// 得到data1列的数据
String data1 = cursor_data.getString(cursor_data
.getColumnIndex("data1"));
System.out.println(data1 + "=======" + mimetype);
// 通过比对查询出来的mimetype,去判断data1的数据类型
// 邮箱
if ("vnd.android.cursor.item/email_v2".equals(mimetype)) {
user.email = data1;
// 手机号
} else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {
user.tel = data1;
// 地址
} else if ("vnd.android.cursor.item/postal-address_v2"
.equals(mimetype)) {
user.address = data1;
// 姓名
} else if ("vnd.android.cursor.item/name".equals(mimetype)) {
user.name = data1;
}
}
list.add(user);
}
for (User user : list) {
System.out.println(user.toString()+"-----------");
}
}
}