`
feifei_lee
  • 浏览: 44068 次
  • 性别: Icon_minigender_2
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

重复导入联系人

阅读更多

重复导入联系人时,android会把相同的联系人放在一个联系人名片夹中,通过编辑联系人界面可以看到。这样可能会带来编辑的bug,同时看着也不爽。

研究了下代码,原来,android导入时,会调用合并的功能。通过设置RawContacts.AGGREGATION_MODE可以达到导入不合并的效果。

RawContacts.AGGREGATION_MODE可以设置为:

RawContacts.AGGREGATION_MODE_DEFAULT;

RawContacts.AGGREGATION_MODE_IMMEDIATE;

RawContacts.AGGREGATION_MODE_SUSPENED;

RawContacts.AGGREGATION_MODE_DISABLED;

(详见android.provider.ContactsContract.java)

 

在导入联系人时insert的地方(framework/provider/pim/ContactStruct.java/pushIntoContentResolver())加入

builder.withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_SUSPENDED);
分享到:
评论
1 楼 slldxmm 2011-09-21  
Log.i(TAG, "Insert Beg");
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ContentProviderOperation.Builder op;
ContentProviderResult[] ret = null;

// 生成新id
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, null)
.withValue(RawContacts.ACCOUNT_NAME, null)
.build());

// 姓名
op = ContentProviderOperation.newInsert(Data.CONTENT_URI);
op.withValueBackReference(Data.RAW_CONTACT_ID, 0);
op.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
op.withValue(StructuredName.FAMILY_NAME, "毛");
op.withValue(StructuredName.GIVEN_NAME, "泽东");
ops.add(op.build());

// 号码
op = ContentProviderOperation.newInsert(Data.CONTENT_URI);
op.withValueBackReference(Data.RAW_CONTACT_ID, 0);
op.withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
op.withValue(Phone.NUMBER, "88888888888");
op.withValue(Phone.TYPE, Phone.TYPE_HOME);
ops.add(op.build());

// 事务新增
try {
ret = getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
for (ContentProviderResult r : ret) {
Log.i(TAG, r.toString());
}
Toast.makeText(this, "新增返回id :" + ContentUris.parseId(ret[0].uri), Toast.LENGTH_LONG).show();
}
catch (Exception e)
{
}
Log.i(TAG, "Insert End");

这是我的完整例子,为何如你添加,没有效果啊。

相关推荐

    android合并重复联系人功能

    在Android操作系统中,管理联系人是一项重要的任务,尤其是在用户导入大量数据或同步不同来源的联系人时,可能会出现重复的联系人条目。为了解决这个问题,我们可以开发一个"android合并重复联系人功能",这将极大地...

    安卓通讯录联系人打电话归属地相关-批量添加联系人直接在.excel文件中填写姓名和电话即可批量导入.rar

    这个压缩包文件提供了一个解决方案,允许用户通过批量导入的方式来快速添加联系人。这个方法利用了Excel表格的便利性,用户只需在表格中填入姓名和电话号码,然后通过特定的脚本或工具将这些数据导入到安卓设备的...

    清除重复的电话通讯录并写成XML文件导入手机

    这通常发生在用户从多个设备同步通讯录或者手动添加联系人时未注意到已有相同条目。为了解决这个问题,我们可以编写一个程序,通过比较各个联系人的电话号码或名字来识别和删除重复项。 接下来,我们将使用编程语言...

    联系人导入导出 - Contacts Backup - Assistant

    ④请勿重复导入,否则会创建新的重复联系人。 3、应用卸载: 提供卸载功能,帮助卸载掉手机程序(目前只支持卸载除系统程序外的应用程序),采用智能直接删除程序文件,及其关联缓存文件等,轻松卸载程序。 4.、职业...

    Android 2.1 从SD卡导入联系人 vcf

    对于重复的联系人,系统通常会合并或更新已存在的联系人条目,避免数据冗余。 5. **权限管理**: 在Android 6.0及以上版本,应用需要请求运行时权限才能访问SD卡和联系人数据。因此,在代码中要确保已经获取了`...

    msn导入联系人ASP.NET实现

    在描述中,“msn导入联系人ASP.NET实现”被重复提及,这可能是为了强调这个功能的实现是基于ASP.NET技术,以及其主要目标是处理MSN的联系人数据。 标签同样为“msn导入联系人ASP.NET实现”,再次确认了项目的核心...

    Android批量导入联系人到手机通讯录

    记得在插入之前,检查联系人是否已存在,避免重复。 ```java public class ImportContactTask implements Runnable { private Contact contact; public ImportContactTask(Contact contact) { this.contact = ...

    第一企信怎么添加常用联系人.docx

    2. **通过电话图标添加:** 在“电话”图标的界面下,用户可以重复上述右键点击并选择“添加到常用”的操作步骤,以快速添加联系人为常用联系人。 3. **在联系人列表中直接操作:** 在“联系人”界面下,用户可以...

    如何把excel表格导入iphone 联系人?.docx

    - 选择“合并”通讯录时,虽然不会覆盖iPhone上的现有联系人,但如果存在重复的联系人信息,则可能导致合并后的联系人列表中出现多余条目。 通过上述步骤,您可以轻松地将Excel表格中的联系人信息导入至iPhone中,...

    outlook2013查看建议的联系人

    总之,“建议的联系人”是Outlook 2013中一项非常实用的功能,它能够帮助用户更高效地管理自己的联系人网络,减少重复工作,提高日常沟通的效率。通过上述步骤,你就可以轻松地查看和利用“建议的联系人”功能,提升...

    AddContacts

    在IT领域,尤其是在管理个人信息或客户服务系统中,批量添加联系人是一项常见的任务。"AddContacts"这个主题就聚焦于如何高效地处理大量联系人的导入工作。以下是对这一知识点的详细阐述: 1. **批量操作的概念**:...

    Android通讯录联系人查询,自动提示,一个人多个号码

    本文将深入探讨如何解决在Android中查询和处理联系人姓名重复时遇到的问题,以及如何实现自动提示功能,使得用户能够更方便地添加和查询联系人的多个电话号码。 首先,我们需要理解Android中的联系人存储机制。...

    usim卡联系人存储实现

    // 添加联系人 public void addContact(String name, String msisdn, String anr, String email) { SIMRecord record = findFreeRecord(); record.setName(name); record.setMsisdn(msisdn); record.addAnr(anr)...

    jQuery左侧人员添加到右侧联系人.zip

    本项目"jQuery左侧人员添加到右侧联系人"旨在实现一个功能,即用户可以通过点击左侧的联系人列表,将选中的联系人移动到右侧,这一功能常见于各种通讯录应用或团队管理工具中。 首先,我们要理解这个项目的结构和...

    查看联系人List显示

    注意,由于隐私保护和性能优化,Android系统可能会合并重复的联系人信息,因此在处理联系人数据时,可能需要考虑如何处理这些合并后的记录。 总结来说,查看并显示Android手机联系人列表涉及的主要步骤包括:请求...

    Android获取联系人

    获取联系人信息的第一步是添加相应的权限到AndroidManifest.xml文件: ```xml ``` 没有这个权限,应用将无法读取用户的联系人信息。 接下来,我们可以通过ContentResolver来查询ContactsContract类中的数据。...

    教学:怎么把电脑excel表联系人批量导入手机通讯录.docx

    掌握如何将电脑中Excel表格里的联系人批量导入手机通讯录的技巧,对于提升工作效率和减少重复劳动具有重大意义。本教程将引导你了解使用金芝号码提取导入助手这一工具,实现电脑Excel联系人与手机通讯录的无缝对接。...

    如何把QQ邮箱通讯录导入outlook.docx

    确保勾选“不导入重复的项目”,以防止已存在的联系人被重复导入,然后点击“下一步”。 6. 在“目标文件夹”选项中,选择“联系人”。这样,导入的联系人将会被添加到Outlook的联系人列表中。点击“下一步”,然后...

    导入系统通讯录

    - **邮件导入**:如果你通过邮件收到.vcf文件,只需在邮件中点击附件,然后选择“添加到联系人”。 - **iCloud导入**:登录iCloud.com,进入“设置” &gt; “导入VCF”,选择文件并按指示操作。 - **iTunes同步**:...

    AndroidMetral联系人

    用户可以方便地添加、修改或删除联系人的详细信息,如添加新的电话号码、更新电子邮件地址或者更改联系人照片。此外,界面可能还包括了导入/导出联系人功能,方便用户同步数据到其他设备或云服务。 该应用可能还...

Global site tag (gtag.js) - Google Analytics