【发布时间】:2023-04-02 17:18:01
【问题描述】:
我正在尝试列出具有电子邮件、电话或两者的联系人列表。
为此,我使用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};
我只对此类联系人的姓名感兴趣。但是由于数据表将给定联系人的每个信息保存在单独的行中,因此结果游标中有重复的条目。
有什么方法可以区分这些条目吗?我正在使用CursorLoaderManager 和CursorAdapter(也许唯一的方法是在加载程序完成时将它们过滤掉?)。
【问题讨论】:
-
你见过this,它有点旧,但可能会有帮助。
-
我已经尝试了所有方法,但不幸的是没有任何帮助,因为这些“黑客”已在最新的 android 版本中得到修复,或者它们不适用于联系内容提供商:/
标签: android email distinct android-contacts phone-number