安卓开发获取手机通讯录信息
时间: 2023-09-05 19:10:02 浏览: 45
安卓开发获取手机通讯录信息可以通过ContentResolver和Cursor实现。具体步骤如下:
1.在AndroidManifest.xml文件中添加获取通讯录权限
2.创建ContentResolver对象
3.创建Cursor对象,使用ContentResolver的query()方法查询通讯录数据
4.遍历Cursor对象,获取通讯录数据
下面是一个示例代码:
```
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
//permission not granted, request for permission
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS}, PERMISSION_READ_CONTACTS);
}else {
//permission granted, read contacts
readContacts();
}
private void readContacts() {
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
do {
//获取联系人姓名
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
//获取联系人电话号码
Cursor phoneCursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + cursor.getString(
cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID)), null, null);
if (phoneCursor != null && phoneCursor.moveToFirst()) {
do {
String phone = phoneCursor.getString(phoneCursor.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.NUMBER));
//处理联系人姓名和电话号码数据
} while (phoneCursor.moveToNext());
phoneCursor.close();
}
} while (cursor.moveToNext());
cursor.close();
}
}
```