`
bkship
  • 浏览: 47853 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

批量添加联系人

阅读更多

说实话,我找了一整天的帖子,好像所有关于批量添加联系人的帖子都是复制一个人的!

 

然后那一个人又没说清楚。

 

以下是我做的,可能有不对! 实现功能就好吧。我感觉

 

API上,还有sample里面都有现成的,不过讲批量处理也只是用的特定的一个联系人来说的!

 

结果我不知道是不是要循环往ops里面add联系人 最后一起来applyBatch

 

幸好猜想没有太离谱!直接上代码吧。

/**

*list里面存储的是我要批量加入的联系人列表

*withYieldAllowed(true)这句例子跟其他的地方都没写,看了下官方文档才知道批量操作容易长时间占用数据库

* 所以要写这个屈服点来保证其他要读库的程序来中断这个操作,不加会出错!

*rawContactInsertIndex = ops.size();刚开始自以为是用循环的i来代替结果通讯录混乱了!

*/

 

public static void CopyAll2Phone(List<ContactInfo> list,Context ctx){

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();

int rawContactInsertIndex;

for (int i = 0; i < list.size(); i++) {

      rawContactInsertIndex = ops.size();

 

    ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)

                    .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)

                    .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)

                    .withYieldAllowed(true)

                    .build());

      ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)

                    .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,

rawContactInsertIndex)

                    .withValue(ContactsContract.Data.MIMETYPE,

                            ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)

                    .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, list.get(i).name)

                    .withYieldAllowed(true)

                    .build());

      ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)

                    .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)

                    .withValue(ContactsContract.Data.MIMETYPE,

                            ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)

                    .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, list.get(i).number)

                    .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, Phone.TYPE_MOBILE)

                    .withYieldAllowed(true)

                    .build());

 

      try {

//这里才调用的批量添加

        ctx.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);

       

} catch (RemoteException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (OperationApplicationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

 

}


 

 

分享到:
评论
6 楼 嘟嘟橙 2013-08-22  
新手请教,就是添加较多联系人时,速度会慢,有没有优化的办法? 再次先谢大家。
5 楼 嘟嘟橙 2013-08-07  
新手学习。感谢分享。
4 楼 yx1989 2012-06-25  
qiuyouzhi 写道
你好,我用这种方式插入联系人,当联系人在二三百条时候,将近耗了3分钟,无法承受,其次批量加入最多只能500条,请问你有什么好的方式能把时间缩短到一分钟内啊

最好是,每次插的数量限制在30个左右,不然缓存压力太大。
3 楼 qiuyouzhi 2012-06-13  
你好,我用这种方式插入联系人,当联系人在二三百条时候,将近耗了3分钟,无法承受,其次批量加入最多只能500条,请问你有什么好的方式能把时间缩短到一分钟内啊
2 楼 yx1989 2011-12-26  
yx1989 写道
Error inserting sourceid=8635ce7f94feaab2 contact_id=null account_name=pcsc account_type=com.htc.android.pcsc

这是什么情况?



在另一台defy上木有问题。。。。
1 楼 yx1989 2011-12-26  
Error inserting sourceid=8635ce7f94feaab2 contact_id=null account_name=pcsc account_type=com.htc.android.pcsc

这是什么情况?

相关推荐

    Outlook 2010批量导入联系人

    在Outlook 2010中批量导入联系人是一个高效管理个人通讯录的方式,尤其适合那些需要维护大量联系信息的用户。以下是如何操作的详细步骤: 1. 首先,你需要在Excel 2003中创建一个表格,表1,包含你的联系人的姓名和...

    lync 2010 批量添加联系人列表

    因此,批量导入联系人列表的功能显得尤为重要。本文将深入探讨Lync 2010批量添加联系人的方法,包括脚本的使用、参数解析以及操作步骤。 ### 一、脚本介绍:LyncAddContacts.vbs #### 版本信息: 版本:1.1,发布...

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

    压缩包中的"批量添加联系人,直接在.excel文件中填写姓名和电话即可批量导入"可能是脚本代码或说明文档,它指导用户如何执行上述操作。可能包含的步骤包括: 1. 创建Excel模板,设定姓名和电话两列。 2. 输入联系人...

    Mtk Talkase 卡片 国产手机批量导入联系人教程

    标题中的“Mtk Talkase 卡片 国产手机批量导入联系人教程”是指一种针对搭载MTK(MediaTek)芯片的国产手机,利用特定方法批量导入联系人的过程。描述中提到,用户通过四步操作成功地将大约982条联系人数据导入手机...

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

    在Android平台上,批量导入联系人至手机通讯录是一项常见的需求,尤其对于企业用户或需要整理大量联系信息的个人而言。本教程将详细讲解如何通过线程池模式实现这一功能,确保即使处理5000个联系人也不会出现内存...

    AddContacts

    10. **测试与验证**:在实际应用前,要对批量添加功能进行测试,确保所有预期的联系人都能正确导入,且不会影响现有数据的完整性。 总之,"AddContacts"是一个关于如何有效地在系统中批量导入和管理联系人的知识点...

    android 批量插入联系人、短信、通话记录,安装版,apk格式

    安装后,按照应用提供的指引,可以导入预先准备好的批量数据文件,如CSV或JSON格式,包含联系人、短信和通话记录的详细信息。应用将解析这些数据并调用相应的API进行批量插入操作,提高数据处理的效率。 总之,这个...

    Android 一个批量删除联系人的Demo.zip

    这个"Android 一个批量删除联系人的Demo.zip"提供了一个实例,展示了如何在Android应用中实现批量删除联系人的功能。接下来,我们将深入探讨这个Demo涉及的核心知识点。 1. **Android权限**: 在Android系统中,对...

    Android批量添加随机联系人

    随机生成带号码的联系人,并添加入联系人数据库(小工具)

    android批量和单条操作联系人

    本示例"android批量和单条操作联系人"是针对这一需求设计的,旨在帮助开发者理解和实现如何在Android应用程序中进行批量及单个联系人的增删改查操作。以下将详细介绍这一主题: 一、Android联系人框架 Android提供...

    批量添加AD用户然后批量添加邮箱收件人

    这可能涉及到创建邮件分发组或联系人,并将新用户添加到相应组。 3. 配置权限:根据需要,可能还需要为这些用户配置邮件箱权限,如读取、发送或完全访问权限。 4. 测试和验证:通过发送测试邮件确认收件人是否已经...

    安卓通讯录联系人打电话归属地相关-android批量和单条添加手机通讯录.rar

    3. **批量添加联系人**:批量添加联系人通常涉及到创建一个`ContentValues`对象数组,每个对象对应一个联系人记录。然后使用`ContentResolver`的`bulkInsert()`方法,将所有联系人数据一次性插入到通讯录中。 4. **...

    旺旺批量删除联系人/好友软件/程序

    1. 批量选择:用户可以根据需要设定条件,如按照添加时间、最后在线时间、特定分组等,快速筛选出需要删除的联系人。 2. 自动化操作:一旦设定好删除规则,软件将自动执行删除操作,无需人工干预,极大地提高了工作...

    批量添加通讯录联系人中文拼音缩写工具

    在不同智能手机直接互相拷贝联系人会发现有时部分手机联系人并不能正常按照汉字拼音进行排序,此工具可以将联系人信息批量加上拼音缩写前缀,实用小巧

    邮件联系人导入方法MAC——outlook——汉王

    以下是一种通过创建vcf文件并使用VBA脚本来批量导入联系人的方法: 1. **导出MAC Outlook 2011联系人到vcf格式**: - 首先,你需要在MAC上打开Outlook 2011。 - 转到“联系人”部分,全选所有的联系人(使用...

    Android+一个批量删除联系人的Demo

    在Android系统中,管理设备上的联系人是一项常见的任务,其中包括添加、编辑以及删除联系人。在本Demo中,我们将深入探讨如何实现批量删除联系人的功能。这个Demo名为"Android+一个批量删除联系人的Demo",它提供了...

    android联系人导入

    如果需要在应用中实现批量导入联系人,通常会使用VCF(vCard)文件格式,这是一种通用的标准,用于交换电子名片。本教程将详细介绍如何在Android应用中实现联系人的VCF文件导入。 首先,我们需要理解VCF文件的结构...

    华为Play 4t Pro手机通讯录制作.zip

    总之,华为Play 4t Pro手机提供了便捷的批量添加联系人功能,通过VCF文件可以有效地管理和导入大量的联系人信息。这不仅提高了工作效率,还使得跨设备的数据同步变得更加简单。对于经常需要处理大量联系人信息的用户...

    酷派tbl联系人转换器,批量导出联系人为CSV格式

    酷派tbl联系人转换器是一款专门针对酷派手机用户的实用工具,它允许用户批量将存储在设备中的联系人数据导出为CSV(Comma Separated Values)格式。CSV是一种通用的数据交换格式,易于读写,且能被大多数电子表格...

Global site tag (gtag.js) - Google Analytics