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

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

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

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();

}

}

批量添加联系人的方法相关推荐

  1. 华为Play 4T Pro批量添加联系人

           因本人比较懒,单位上有八十多号人,不想一个个去添加联系人,但现有的一些批量添加联系人的方法貌似都不怎么好用,故特意写了个针对华为Play 4t Pro批量添加联系人的软件:本软件已确认支 ...

  2. 手机号码批量导入通讯录php,iPhone8怎么批量导入通讯录?苹果8批量添加联系人教程...

    苹果8批量添加联系人教程 方法一: 1.首先我们需要在正式使用iPhone8之前,先将所有的通讯录联系人保存到SIM卡中,然后取出SIM卡安装到新iPhone8手机当中. 2.然后我们依次进入到iPh ...

  3. 数据库批量添加数据的方法

    数据库批量添加数据的方法 使用查询列表的办法来批量添加数据. 比如: insert into 表名 (字段名) select 字段名 from 自定义表 在数据库函数这里写dbo.split方法,分割 ...

  4. Android批量添加联系人到通讯录

    由于工作上的需要,把数据库中备份的联系人添加到通讯录,一般都有几百条记录,插入一条数据系统默认commit一次,这样效率就降低了,如果把所有的数据都添加进去后再commit效率就不一样,这就需要事务 ...

  5. android批量添加联系人,Android实现批量添加联系人到通讯录

    由于工作上的需要,把数据库中备份的联系人添加到Android通讯录,一般都有几百条记录,插入一条数据系统默认commit一次,这样效率 由于工作上的需要,把数据库中备份的联系人添加到Android通讯 ...

  6. 在Office365中批量添加联系人

    在O365中,联系人项没有提供批量导入的选项,需要一个一个添加.需要大批量添加时,无疑是一件很痛苦的事! 实际上,我们可以使用Windows PowerShell和CSV文件批量导入联系人.主要分为以 ...

  7. python实现批量添加联系人到手机通讯录+python可视化编程案例

    简要 本案例通过python+pandas实现提取excel工作表中的数据,并将其添加相关代码信息,再保存为txt,然后保存为后缀名为.vcf的通讯录备份文件,此文件可以直接使用手机自带通讯录软件打开 ...

  8. Cadence Orcad Capture创建原理图Symbol批量添加PIN的方法图文

      ⏪<上一篇>   

  9. android 通讯录 编程,以编程方式批量添加数千个Android联系人

    使用ContentResolver.applyBatch和ContentResolver.bulkInsert方法一次性添加数千个联系人非常慢. Android是否提供了批量添加联系人的不同方式,这种 ...

最新文章

  1. 十年——透过BILL的眼睛
  2. *用C#创建Windows服务(Windows Services)
  3. 15条走红网络的手机摄影技巧
  4. 要学好linux运维请从排版画图开始
  5. 孤陋寡闻了吧?Python 居然可以做这30件神奇好玩的事情(附教程)
  6. PPT设计里的小技巧
  7. 开机预读快还是不预读快_WIN 7下的超级预读比VISTA要好,改进不少!推荐开启超级预读!...
  8. HDU_oj_2046 骨牌铺方格
  9. C Tricks(十九)—— 求以任意数为底的对数
  10. hibernate简单入门教程(四)---------关联映射
  11. js遍历list对象集合_Mybatis的最基本用法,遍历集合List和数组Array
  12. android 关机 流程_Android 关机(reboot)流程
  13. 修改oracle数据库用户名和密码
  14. Xshell远程连接Linux失败
  15. 金蝶oracle用鼎信诺取数,取数软件 审计取数软件?
  16. 市场主流单片机的介绍和选择指南
  17. Python在导入文件时的FileNotFoundError解决办法
  18. gitbucket push卡住
  19. macOS Big Sur发布了!适用于所有兼容的Mac机型!
  20. 虚拟服务器如何安装系统,如何给虚拟机安装操作系统图文讲解!

热门文章

  1. 定位推送分享轻社交网络平台《足迹》——数据库设计
  2. 树莓派CSI摄像头使用
  3. linux磁盘管理相关命令
  4. 记一次磁盘挂载导致mysql服务启动失败的问题
  5. Django-Docker容器化部署:Django-Docker-MySQL-Nginx-Gunicorn云端部署
  6. 微信开发 (四) 微信网页授权
  7. 国外著名大学计算机教学考察随笔
  8. 0x7c9300e8 0x7c9300e8错误
  9. echarts各种字体颜色的修改
  10. 利用swiper在vue中做轮播图,并改变轮播图的原有箭头、图片等内容