我试图让所有拥有电子邮件,电话或两者联系人列表联系人。 为此我使用ContentResolver
与URI设置为ContactsContract.Data.CONTENT_URI
,我选择这些条件:获取具有电子邮件或电话号码具有独特的效果
String SELECTION = ContactsContract.Data.DISPLAY_NAME_PRIMARY + "<>'' AND " + ContactsContract.Data.IN_VISIBLE_GROUP + "=1" + " AND (" + ContactsContract.Data.MIMETYPE + "=? OR " + ContactsContract.Data.MIMETYPE + "=?)";
String[] SELECTION_ARGS = new String[]{ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE,
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE};
我感兴趣的只是这种接触的名称。但是因为数据表将每个给定联系人的信息保存在单独的行中,所以得到的光标在其中具有重复的条目。
有什么办法那些如何DISTINCT项?我正在使用CursorLoaderManager
和CursorAdapter
(也许唯一的方法是在加载器结束时将它们过滤出来?)。
你见过[这](http://stackoverflow.com/questions/2315203/android-distinct-and-groupby-in-contentresolver),这是一个有点老,但可能会有所帮助。 –
我已经试过了所有可惜没有那些“黑客”,帮助因被固定在最新的Android版本或不接触的内容提供商合作:/ – bakua