从Android联系人提供商处获取唯一的电子邮件

时间:2015-04-20 18:29:52

标签: android android-contacts

我想让所有联系人都有电子邮件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
            );
}

1 个答案:

答案 0 :(得分:0)

_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
                );
    }