批量添加联系人的方法
说实话,我找了一整天的帖子,好像所有关于批量添加联系人的帖子都是复制一个人的!
然后那一个人又没说清楚。
以下是我做的,可能有不对! 实现功能就好吧。我感觉
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();
}
}
批量添加联系人的方法相关推荐
- 华为Play 4T Pro批量添加联系人
因本人比较懒,单位上有八十多号人,不想一个个去添加联系人,但现有的一些批量添加联系人的方法貌似都不怎么好用,故特意写了个针对华为Play 4t Pro批量添加联系人的软件:本软件已确认支 ...
- 手机号码批量导入通讯录php,iPhone8怎么批量导入通讯录?苹果8批量添加联系人教程...
苹果8批量添加联系人教程 方法一: 1.首先我们需要在正式使用iPhone8之前,先将所有的通讯录联系人保存到SIM卡中,然后取出SIM卡安装到新iPhone8手机当中. 2.然后我们依次进入到iPh ...
- 数据库批量添加数据的方法
数据库批量添加数据的方法 使用查询列表的办法来批量添加数据. 比如: insert into 表名 (字段名) select 字段名 from 自定义表 在数据库函数这里写dbo.split方法,分割 ...
- Android批量添加联系人到通讯录
由于工作上的需要,把数据库中备份的联系人添加到通讯录,一般都有几百条记录,插入一条数据系统默认commit一次,这样效率就降低了,如果把所有的数据都添加进去后再commit效率就不一样,这就需要事务 ...
- android批量添加联系人,Android实现批量添加联系人到通讯录
由于工作上的需要,把数据库中备份的联系人添加到Android通讯录,一般都有几百条记录,插入一条数据系统默认commit一次,这样效率 由于工作上的需要,把数据库中备份的联系人添加到Android通讯 ...
- 在Office365中批量添加联系人
在O365中,联系人项没有提供批量导入的选项,需要一个一个添加.需要大批量添加时,无疑是一件很痛苦的事! 实际上,我们可以使用Windows PowerShell和CSV文件批量导入联系人.主要分为以 ...
- python实现批量添加联系人到手机通讯录+python可视化编程案例
简要 本案例通过python+pandas实现提取excel工作表中的数据,并将其添加相关代码信息,再保存为txt,然后保存为后缀名为.vcf的通讯录备份文件,此文件可以直接使用手机自带通讯录软件打开 ...
- Cadence Orcad Capture创建原理图Symbol批量添加PIN的方法图文
⏪<上一篇>
- android 通讯录 编程,以编程方式批量添加数千个Android联系人
使用ContentResolver.applyBatch和ContentResolver.bulkInsert方法一次性添加数千个联系人非常慢. Android是否提供了批量添加联系人的不同方式,这种 ...
最新文章
- 十年——透过BILL的眼睛
- *用C#创建Windows服务(Windows Services)
- 15条走红网络的手机摄影技巧
- 要学好linux运维请从排版画图开始
- 孤陋寡闻了吧?Python 居然可以做这30件神奇好玩的事情(附教程)
- PPT设计里的小技巧
- 开机预读快还是不预读快_WIN 7下的超级预读比VISTA要好,改进不少!推荐开启超级预读!...
- HDU_oj_2046 骨牌铺方格
- C Tricks(十九)—— 求以任意数为底的对数
- hibernate简单入门教程(四)---------关联映射
- js遍历list对象集合_Mybatis的最基本用法,遍历集合List和数组Array
- android 关机 流程_Android 关机(reboot)流程
- 修改oracle数据库用户名和密码
- Xshell远程连接Linux失败
- 金蝶oracle用鼎信诺取数,取数软件 审计取数软件?
- 市场主流单片机的介绍和选择指南
- Python在导入文件时的FileNotFoundError解决办法
- gitbucket push卡住
- macOS Big Sur发布了!适用于所有兼容的Mac机型!
- 虚拟服务器如何安装系统,如何给虚拟机安装操作系统图文讲解!