android联系人同步相关随笔
2014-03-04 14:23
337 查看
最近在做联系人同步,整个过程苦不堪言,遇到了很多问题,收集起来作为日后备查吧。
另外,google的通讯录同步算是最牛逼的了,试用了国内的一些同步工具包括百度云、qq同步助手都有很大的缺陷,就不慢慢展开了。也许是因为android本身的数据库是由google建的,可以方便的为自己的联系人增加同步字段,而第三方开发者只能使用提供的API所致?
------------------------------------------------------------------------------------------------------------------------------------------------------------------
关于新建联系人,其中的withValueBackReferen查了很多资料也没搞清到底是怎么回事,现在基本知道怎么用,也是一知半解,原链接http://stackoverflow.com/questions/4655291/semantics-of-withvaluebackreference,大意是新增联系人的时候怎么将Raw Contact与具体数据表Data相关联起来,本来纳闷的是新增取不回新增联系人的ID,总不会让我去找数据库最后一条记录吧,国内以及android文档中的写法都没有这么清除,现在把自己的解决方案贴出来,其实原帖中也是有的。
其中result[0]是插入RawContact所返回的Uri,而result[1]是插入Data返回的Uri。可以自行观察数据库变化,拿到Id就方便多了。
另外,google的通讯录同步算是最牛逼的了,试用了国内的一些同步工具包括百度云、qq同步助手都有很大的缺陷,就不慢慢展开了。也许是因为android本身的数据库是由google建的,可以方便的为自己的联系人增加同步字段,而第三方开发者只能使用提供的API所致?
------------------------------------------------------------------------------------------------------------------------------------------------------------------
关于新建联系人,其中的withValueBackReferen查了很多资料也没搞清到底是怎么回事,现在基本知道怎么用,也是一知半解,原链接http://stackoverflow.com/questions/4655291/semantics-of-withvaluebackreference,大意是新增联系人的时候怎么将Raw Contact与具体数据表Data相关联起来,本来纳闷的是新增取不回新增联系人的ID,总不会让我去找数据库最后一条记录吧,国内以及android文档中的写法都没有这么清除,现在把自己的解决方案贴出来,其实原帖中也是有的。
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI) .withValue(RawContacts.ACCOUNT_TYPE, null) .withValue(RawContacts.ACCOUNT_NAME, null).build()); ops.add(ContentProviderOperation .newInsert(ContactsContract.Data.CONTENT_URI) .withValueBackReference(Data.RAW_CONTACT_ID, 0) .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE) .withValue(StructuredName.DISPLAY_NAME, name).build()); try { ContentProviderResult[] results = getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); long id = ContentUris.parseId(results[0].uri); } catch (Exception e) { e.printStackTrace(); }
其中result[0]是插入RawContact所返回的Uri,而result[1]是插入Data返回的Uri。可以自行观察数据库变化,拿到Id就方便多了。
相关文章推荐
- Android联系人相关
- android 随笔——队列、同步、锁
- Titanium——Android同步手机本地联系人
- android 系统语言为英语时,Contacts联系人名字含有特殊前缀后缀(Dr. Mr. Lt等)时的相关问题处理
- 索爱Android手机同步outlook电邮、日历、联系人、任务的方法--Moxier Pro
- Android 不能同步Facebook联系人
- Android Studio相关随笔
- 同步Android手机联系人到iPhone手机通讯录
- Android联系人3--联系人分组相关
- Android编译--刷机--改代码--再刷机,随笔相关查找
- Android 电话、联系人相关协议
- Android 系统联系人相关URI
- Android随笔随想-GUI-Fragment相关学习
- Android 系统联系人相关URI
- Android 4.X 读取SIM卡短信和联系人的相关类
- Android——与查询联系人相关的3张表
- Android——与查询联系人相关的3张表
- [Android4] 安卓开发-1.0环境配置与相关下载
- Android Telephony Framework相关知识整理
- android 联系人 中英文排序 --代码仓库