【问题标题】:Get unique email contacts from Android contact provider从 Android 联系人提供商处获取唯一的电子邮件联系人
【发布时间】:2015-04-20 18:29:52
【问题描述】:

我想让所有联系人都有电子邮件 ID。 每封独特的电子邮件都有一行。

现在我有以下实现,但它会为每个帐户提供电子邮件,所以有重复的电子邮件联系人行。

@Override
    public Loader<Cursor> onCreateLoader(int id, Bundle args) {    
final String[] PROJECTION = {
                    ContactsContract.CommonDataKinds.Email._ID,
                    ContactsContract.CommonDataKinds.Email.DISPLAY_NAME_PRIMARY,
                    ContactsContract.CommonDataKinds.Email.ADDRESS
            };

            return new CursorLoader(
                    this,
                    ContactsContract.CommonDataKinds.Email.CONTENT_URI,
                    ContactCursorAdapter.PROJECTION,
                    null,
                    null,
                    null
            );
}

【问题讨论】:

  • 最坏的情况是你必须手动迭代它们
  • 您是否在 ListView 中显示?

标签: android android-contacts


【解决方案1】:

_ID 对于数据表中的每个电子邮件项目都是唯一的。 应该在投影中使用 CommonDataKinds.Email.CONTACT_ID,这将有助于获得唯一的联系方式。

    @Override
        public Loader<Cursor> onCreateLoader(int id, Bundle args) {    

final String[] PROJECTION = {
                        ContactsContract.CommonDataKinds.Email.CONTACT_ID,
                        ContactsContract.CommonDataKinds.Email.DISPLAY_NAME_PRIMARY,
                        ContactsContract.CommonDataKinds.Email.ADDRESS
                };

                return new CursorLoader(
                        this,
                        ContactsContract.CommonDataKinds.Email.CONTENT_URI,
                        PROJECTION,
                        null,
                        null,
                        null
                );
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多