说实话,我找了一整天的帖子,好像所有关于批量添加联系人的帖子都是复制一个人的!
然后那一个人又没说清楚。
以下是我做的,可能有不对! 实现功能就好吧。我感觉
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();
}
}
分享到:
相关推荐
在Outlook 2010中批量导入联系人是一个高效管理个人通讯录的方式,尤其适合那些需要维护大量联系信息的用户。以下是如何操作的详细步骤: 1. 首先,你需要在Excel 2003中创建一个表格,表1,包含你的联系人的姓名和...
因此,批量导入联系人列表的功能显得尤为重要。本文将深入探讨Lync 2010批量添加联系人的方法,包括脚本的使用、参数解析以及操作步骤。 ### 一、脚本介绍:LyncAddContacts.vbs #### 版本信息: 版本:1.1,发布...
压缩包中的"批量添加联系人,直接在.excel文件中填写姓名和电话即可批量导入"可能是脚本代码或说明文档,它指导用户如何执行上述操作。可能包含的步骤包括: 1. 创建Excel模板,设定姓名和电话两列。 2. 输入联系人...
标题中的“Mtk Talkase 卡片 国产手机批量导入联系人教程”是指一种针对搭载MTK(MediaTek)芯片的国产手机,利用特定方法批量导入联系人的过程。描述中提到,用户通过四步操作成功地将大约982条联系人数据导入手机...
在Android平台上,批量导入联系人至手机通讯录是一项常见的需求,尤其对于企业用户或需要整理大量联系信息的个人而言。本教程将详细讲解如何通过线程池模式实现这一功能,确保即使处理5000个联系人也不会出现内存...
10. **测试与验证**:在实际应用前,要对批量添加功能进行测试,确保所有预期的联系人都能正确导入,且不会影响现有数据的完整性。 总之,"AddContacts"是一个关于如何有效地在系统中批量导入和管理联系人的知识点...
安装后,按照应用提供的指引,可以导入预先准备好的批量数据文件,如CSV或JSON格式,包含联系人、短信和通话记录的详细信息。应用将解析这些数据并调用相应的API进行批量插入操作,提高数据处理的效率。 总之,这个...
这个"Android 一个批量删除联系人的Demo.zip"提供了一个实例,展示了如何在Android应用中实现批量删除联系人的功能。接下来,我们将深入探讨这个Demo涉及的核心知识点。 1. **Android权限**: 在Android系统中,对...
随机生成带号码的联系人,并添加入联系人数据库(小工具)
本示例"android批量和单条操作联系人"是针对这一需求设计的,旨在帮助开发者理解和实现如何在Android应用程序中进行批量及单个联系人的增删改查操作。以下将详细介绍这一主题: 一、Android联系人框架 Android提供...
这可能涉及到创建邮件分发组或联系人,并将新用户添加到相应组。 3. 配置权限:根据需要,可能还需要为这些用户配置邮件箱权限,如读取、发送或完全访问权限。 4. 测试和验证:通过发送测试邮件确认收件人是否已经...
3. **批量添加联系人**:批量添加联系人通常涉及到创建一个`ContentValues`对象数组,每个对象对应一个联系人记录。然后使用`ContentResolver`的`bulkInsert()`方法,将所有联系人数据一次性插入到通讯录中。 4. **...
1. 批量选择:用户可以根据需要设定条件,如按照添加时间、最后在线时间、特定分组等,快速筛选出需要删除的联系人。 2. 自动化操作:一旦设定好删除规则,软件将自动执行删除操作,无需人工干预,极大地提高了工作...
在不同智能手机直接互相拷贝联系人会发现有时部分手机联系人并不能正常按照汉字拼音进行排序,此工具可以将联系人信息批量加上拼音缩写前缀,实用小巧
以下是一种通过创建vcf文件并使用VBA脚本来批量导入联系人的方法: 1. **导出MAC Outlook 2011联系人到vcf格式**: - 首先,你需要在MAC上打开Outlook 2011。 - 转到“联系人”部分,全选所有的联系人(使用...
在Android系统中,管理设备上的联系人是一项常见的任务,其中包括添加、编辑以及删除联系人。在本Demo中,我们将深入探讨如何实现批量删除联系人的功能。这个Demo名为"Android+一个批量删除联系人的Demo",它提供了...
如果需要在应用中实现批量导入联系人,通常会使用VCF(vCard)文件格式,这是一种通用的标准,用于交换电子名片。本教程将详细介绍如何在Android应用中实现联系人的VCF文件导入。 首先,我们需要理解VCF文件的结构...
总之,华为Play 4t Pro手机提供了便捷的批量添加联系人功能,通过VCF文件可以有效地管理和导入大量的联系人信息。这不仅提高了工作效率,还使得跨设备的数据同步变得更加简单。对于经常需要处理大量联系人信息的用户...
酷派tbl联系人转换器是一款专门针对酷派手机用户的实用工具,它允许用户批量将存储在设备中的联系人数据导出为CSV(Comma Separated Values)格式。CSV是一种通用的数据交换格式,易于读写,且能被大多数电子表格...