在Android中,ContentResolver是一个用于与其他应用程序共享数据的接口
ContentResolver contentResolver = getContentResolver();
确定要查询的URI。URI通常指向一个内容提供者,它是一个包含您要查询的数据的应用程序。例如,要查询联系人数据,可以使用ContactsContract.Contacts.CONTENT_URI。
确定要查询的列。这是一个字符串数组,表示您想从内容提供者中检索的列名称。例如,要查询联系人的姓名和电话号码,可以使用以下列:
String[] projection = new String[]{
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER
};
String selection = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " LIKE ?";
String[] selectionArgs = new String[]{"%Smith%"};
String sortOrder = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC";
Cursor cursor = contentResolver.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, // URI
projection, // 要查询的列
selection, // WHERE子句
selectionArgs, // WHERE子句的参数
sortOrder // ORDER BY子句
);
if (cursor != null) {
while (cursor.moveToNext()) {
String displayName = cursor.getString(
cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phoneNumber = cursor.getString(
cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.d("Contact", displayName + ": " + phoneNumber);
}
cursor.close();
}
这就是如何使用Android的ContentResolver查询数据。请注意,查询不同的内容提供者可能需要不同的URI、列和查询条件。始终参考相应的文档以了解如何正确地查询特定的内容提供者。