联系人信息都是放在系统的数据库中的,
数据库地址是
data/data/com.android.providers.contacts/databases/contacts2.db
ContentResolver cr = context.getContentResolver();
调用cr的query方法
contentResolver.query(uri, projection, selection, selectionArgs, sortOrder)
5个参数,后面3个不用管,都是null
第一个是uri
第二个是projection
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
这是通过电话信息获取Uri,
因为一个联系人可能有多个电话号码,
所以直接用联系人的话可能有些电话号码获取不到
不过如果只想获取联系人的话,那可以直接用联系人的uri
String[] projection = {
ContactsContract.CommonDataKinds.Phone.CONTACT_ID, // 联系人ID,用来获取头像
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,// 姓名
ContactsContract.CommonDataKinds.Phone.NUMBER,// 电话号码
};
Cursor cursor = cr.query(uri, projection, null, null, null);
if (cursor == null) {
return null;
}
while (cursor.moveToNext()) {
int contactId = cursor.getInt(0);
String name = cursor.getString(1);
String number = cursor.getString(2);
}