通过ContentResolver可以访问其他应用程序提供的数据接口,获得这个内容提供器调用Context(Activity的究极父类)的getContentResolver方法。之后就能进行CRUD操作了。
这里演示一遍读取通讯录的功能
private void read() {
ContentResolver resolver = getContentResolver();
//核心操作,第一个参数是uri,这里使用Phone APP封装好的
Cursor cursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
try {
if (cursor != null) {
while (cursor.moveToNext()) {
@SuppressLint("Range") String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
@SuppressLint("Range") String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
lis.add(name + "\n" + number);
}
//刷新ListView适配器
adapter.notifyDataSetChanged();
}
} catch (Exception e) {
} finally {
if (cursor != null) {
cursor.close();
}
}
}