从Android联系人提供商获取唯一的电子邮件联系人
我想让所有联系人都有电子邮件id。 每封独特的电子邮件对应一行 现在我有以下实现,但它会给每个帐户发送电子邮件,所以有重复的电子邮件联系人行从Android联系人提供商获取唯一的电子邮件联系人,android,android-contacts,Android,Android Contacts,我想让所有联系人都有电子邮件id。 每封独特的电子邮件对应一行 现在我有以下实现,但它会给每个帐户发送电子邮件,所以有重复的电子邮件联系人行 @Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { final String[] PROJECTION = { ContactsContract.CommonDataKinds.Email._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
);
}
@覆盖
公共加载器onCreateLoader(int-id,Bundle-args){
最终字符串[]投影={
Contacts contract.CommonDataTypes.Email.\u ID,
Contacts contract.CommonDataTypes.Email.DISPLAY\u NAME\u PRIMARY,
ContactsContract.CommonDataTypes.Email.ADDRESS
};
返回新游标装入器(
这
ContactsContract.CommonDataTypes.Email.CONTENT\u URI,
ContactCursorAdapter.PROJECTION,
无效的
无效的
无效的
);
}
\u ID对于数据表中的每个电子邮件项目都是唯一的。
应在投影中使用CommonDataTypes.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
);
}
@覆盖
公共加载器onCreateLoader(int-id,Bundle-args){
最终字符串[]投影={
Contacts contract.CommonDataTypes.Email.CONTACT\u ID,
Contacts contract.CommonDataTypes.Email.DISPLAY\u NAME\u PRIMARY,
ContactsContract.CommonDataTypes.Email.ADDRESS
};
返回新游标装入器(
这
ContactsContract.CommonDataTypes.Email.CONTENT\u URI,
投影,
无效的
无效的
无效的
);
}
最糟糕的情况是,您必须手动迭代您在列表视图中显示的内容?