核心思想:使用内容提供器 ContentResolver 获取 Phone.CONTENT_URI 中的联系人信息。
首先在 AndroidManifest 中添加权限:
<uses-permission android:name="android.permission.READ_CONTACTS" />
调用内容提供器获取联系人信息:
private void readContacts() {
Cursor cursor = null;
try {
//获取内容提供器
ContentResolver resolver = getContentResolver();
//查询联系人数据
cursor = resolver.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null, null, null, null, null);
//遍历联系人列表
while (cursor.moveToNext()) {
//获取联系人姓名
String name = cursor.getString(cursor.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
//获取联系人手机号
String number = cursor.getString(cursor.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.v("woider", "Name:" + name + "\tPhone:" + number);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (cursor != null) {
cursor.close();
}
}
}
查看控制台的输出情况: