【发布时间】:2023-01-26 18:33:22
【问题描述】:
到目前为止我有类似的东西,但似乎 ContactsContract.Data URI 返回具有相同 CONTACT_ID 和 LOOKUP_KEY 的多条记录。有没有办法让这个游标返回不同的记录?
private static final Uri URI = ContactsContract.Data.CONTENT_URI;
@SuppressLint("InlinedApi")
private static final String[] PROJECTION = {
ContactsContract.Data._ID,
ContactsContract.Data.CONTACT_ID,
ContactsContract.Data.LOOKUP_KEY,
ContactsContract.Data.DISPLAY_NAME_PRIMARY
};
private static final String SELECTION =
ContactsContract.Data.DISPLAY_NAME_PRIMARY + " LIKE ?" +
" AND " + ContactsContract.Data.MIMETYPE + " = " + ContactsContract.CommonDataKinds.Organization.MIMETYPE +
" AND " + ContactsContract.CommonDataKinds.Organization.COMPANY + " LIKE ?";
private static final String SORT_ORDER =
ContactsContract.Data.DISPLAY_NAME_PRIMARY + " ASC";
@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle args) {
String contactsFilter = getFilter(contactsSearch);
String companyFilter = getFilter(companySearch);
// Starts the query
return new CursorLoader(
getActivity(),
URI,
PROJECTION,
SELECTION,
new String[] { contactsFilter, companyFilter},
SORT_ORDER
);
}
这是此游标的转储示例:
42 {
_id=74752
contact_id=12603
lookup=2645ie9ffe868ace3d43
display_name=Person 1
}
43 {
_id=74753
contact_id=12603
lookup=2645ie9ffe868ace3d43
display_name=Person 1
}
44 {
_id=74756
contact_id=12603
lookup=2645ie9ffe868ace3d43
display_name=Person 1
}
_ID 不同,但我希望游标返回每人 1 条记录,并且这 3 条记录都是同一个人。
想法?
【问题讨论】: