android studio调取通讯录代码
时间: 2023-05-18 16:01:00 浏览: 182
要在android studio中调取通讯录,首先需要添加相应的权限。在AndroidManifest.xml文件中添加以下代码:
```xml
<uses-permission android:name="android.permission.READ_CONTACTS" />
```
接下来,在java文件中创建一个ContentResolver对象,通过该对象进行通讯录的查询。查询结果返回的是一个Cursor对象,需要遍历该对象来获取通讯录中的联系人信息。
```java
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phoneCursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id }, null);
if (phoneCursor != null && phoneCursor.getCount() > 0) {
while (phoneCursor.moveToNext()) {
String phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.d(TAG, "name: " + name + ", phoneNumber: " + phoneNumber);
}
}
phoneCursor.close();
}
}
cursor.close();
```
以上代码会查询通讯录中所有联系人的姓名和电话号码,并打印到Logcat中。其中使用了ContactsContract类中的常量来指定查询的内容和条件,具体可以查看官方文档。
阅读全文