内容提供者
1.本地通讯录
1.1.权限
1.2.获取
方案一:ContactsContract.CommonDataKinds.Phone.CONTENT_URI
优点:速度快,几百,上千联系人读取都保持在毫秒级别
public static List<Contacts> getContacts(){
List<Contacts> contacts = new ArrayList<>();
String[] mContactsProjection = new String[] {
ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.PHOTO_ID
};
String contactsId;
String phoneNum;
String name;
ContentResolver cr = MyApplication.getInstance().getContentResolver();
//查询contacts表中的所有数据
Cursor cursor = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, mContactsProjection, null, null, null);
if(cursor.getCount() > 0){
while (cursor.moveToNext()){
contactsId = cursor.getString(0);
phoneNum = cursor.getString(1);
name = cursor.getString(2);
Contacts model=new Contacts();
model.setPhone(phoneNum);
model.setName(name);
model.setId(Integer.valueOf(contactsId));
contacts.add(model);
}
}
return contacts;
}方案二:嵌套查询 ContactsContract.Contacts.CONTENT_URI
缺点:耗时严重,上千条数据耗时几十秒
参考文献
Last updated
Was this helpful?