使用ContentResolver读取手机通讯录
时间: 2024-09-27 15:06:54 浏览: 5
ContentResolver是Android系统提供的一种强大的API,用于访问和操作应用程序之间共享的内容 providers。如果你想从手机通讯录获取数据,可以按照以下步骤操作:
1. 获取ContentResolver实例:在Android应用中,你需要通过`Context`对象获取`ContentResolver`。
```java
ContentResolver cr = getContentResolver();
```
2. 定义查询的数据类型和URI:通讯录通常由`ContactsContract.Contacts`表表示。你可以指定需要哪些字段,如电话号码、姓名等。
```java
String[] projection = { ContactsContract.CommonDataKinds.Phone.NUMBER };
Uri uri = ContactsContract.Contacts.CONTENT_URI;
```
3. 构建查询条件:例如,你想获取所有联系人的电话号码,可以设置空的`Where`字符串。
```java
String selection = null;
String sortOrder = ContactsContract.CommonDataKinds.Phone DISPLAY_NAME + " ASC";
```
4. 执行查询并遍历结果:调用`query()`方法,传入上述信息,并处理返回的Cursor对象。
```java
Cursor cursor = cr.query(uri, projection, selection, null, sortOrder);
if (cursor != null) {
try {
while (cursor.moveToNext()) {
String phoneNumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
// 处理手机号码
}
} finally {
cursor.close(); // 关闭Cursor
}
}
```