大家好,我正在尝试使用 ContentResolver 从联系人数据库中获取联系人信息,这些字段希望在一个查询中获取联系人的姓名、号码、FORMATTED_ADDRESS、PHOTO 详细信息。
所以基本上我需要对每个联系人进行 3 次查询才能获得这些详细信息。
我想知道的是,有没有一种更简单、更有效的方法来实现这一目标。
但是使用下面的代码我得到了异常。
java.lang.IllegalArgumentException: Invalid column data1
任何机构都可以帮助我找到相同的解决方案。
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] { ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS,
ContactsContract.CommonDataKinds.Photo.PHOTO};
String selection = ContactsContract.Contacts.HAS_PHONE_NUMBER + " = '1'";
String[] selectionArgs = null;
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
Cursor contacts = getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder);