浅析Android手机卫士读取联系人
推荐阅读:
浅析Android手机卫士sim卡绑定
深入浅析Android手机卫士保存密码时进行md5加密
详解Android手机卫士设置向导页面
浅析Android手机卫士关闭自动更新
浅析Android手机卫士自定义控件的属性
获取ContentResolver内容解析器对象,通过getContentResolver()方法
调用ContentResolver对象的query()方法,得到raw_contacts表里面的数据,得到Cursor对象
参数:Uri对象,字段String数组
获取Uri对象,通过Uri.parse(“content://com.android.contacts/raw_contacts”)方法,
while循环Cursor对象,条件是Cursor对象moveToNext()方法为真
调用Cursor对象的getString()方法,参数是索引
判断不为null,查询另一张表
调用ContentResolver对象的query()方法,得到data表里面的数据,得到Cursor对象
参数:Uri对象,字段String[]数组(data1,mimetype),条件String,条件值String[]数组(contact_id)
Uri对象是Uri.parse(“content://com.android.contacts/data”)
循环和上面一样
姓名对应的类型是vnd.android.cursor.item/name
电话对应的类型是vnd.android.cursor.item/phone_v2
需要权限,android.permisssion.READ_CONTACTS
调用ListView对象的setAdapter()方法,分配数据到视图,参数是Adapter对象
通过newSimpleAdapter()来获得Adapter对象
参数:上下文,数据集合,布局资源,字段String[]数组,控件int[]id数组
packagecom.qingguow.mobilesafe.utils;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
importandroid.content.ContentResolver;
importandroid.content.Context;
importandroid.database.Cursor;
importandroid.net.Uri;
/**
*读取手机联系人
*@authortaoshihan
*
*/
publicclassPhoneContactsUtil{
publicstaticList<Map<String,String>>getContacts(Contextcontext){
ContentResolverresolver=context.getContentResolver();
Uriuri=Uri.parse("content://com.android.contacts/raw_contacts");
UridataUri=Uri.parse("content://com.android.contacts/data");
List<Map<String,String>>contacts=newArrayList<Map<String,String>>();
//循环联系人表
Cursorcursor=resolver.query(uri,newString[]{"contact_id"},null,null,null);
while(cursor.moveToNext()){
Stringid=cursor.getString(cursor.getColumnIndex("contact_id"));
if(id!=null){
Map<String,String>contact=newHashMap<String,String>();
//查找数据表
CursordataCursor=resolver.query(dataUri,newString[]{"data1","mimetype"},"raw_contact_id=?",newString[]{id},null);
while(dataCursor.moveToNext()){
Stringdata1=dataCursor.getString(dataCursor.getColumnIndex("data1"));
Stringmimetype=dataCursor.getString(dataCursor.getColumnIndex("mimetype"));
System.out.println("data1:"+data1+",mimetype:"+mimetype);
if(mimetype.equals("vnd.android.cursor.item/name")){
contact.put("name",data1);
}elseif(mimetype.equals("vnd.android.cursor.item/phone_v2")){
contact.put("phone",data1);
}
}
contacts.add(contact);
dataCursor.close();
}
}
cursor.close();
returncontacts;
}
}
以上内容是小编给大家介绍的android手机卫士读取联系人的相关介绍,希望对大家有所帮助!