同步 Android 联系人

Posted

技术标签:

【中文标题】同步 Android 联系人【英文标题】:Sync Android contacts 【发布时间】:2016-09-17 12:24:50 【问题描述】:

我正在制作一个应用程序,它可以获取所有联系人并将其保存在我的数据库中,它运行良好。

现在,每当用户在本机中执行 CRUD 操作时,我希望我的应用程序能够观察到这一点,以便我也可以在我的数据库中进行更新。 所以经过大量研究后,我发现无法知道哪个特定联系人已被更新或删除。

所以我将联系人的 CONTACT_LAST_UPDATED_TIMESTAMP 与我的同步时间进行了比较。

现在面临的问题是 Google 同步 每 20 分钟运行一次并更新所有联系人 CONTACT_LAST_UPDATED_TIMESTAMP。 它让我更新所有这些联系人

是否有任何其他可能的方式来实现同步(获取已更新的特定联系人)。尝试过同步适配器,只告诉 URI 的变化而不是特定的联系人。

任何帮助或领导将不胜感激。谢谢

【问题讨论】:

我必须在我的应用程序数据库中维护一个我自己的列表,以跟踪我的本地联系人的任何变化 我无法每次比较以获取更改。因为应用需要每秒更新一次 你可以看到这个答案***.com/questions/10431881/… 这不是我想要的。连版本都在更新中 你为什么不试试 BroadCast Receiver 来获取关于联系人更新、添加或删除的广播消息?还是 ContentObserver ? 【参考方案1】:

一种方法是保留联系人数据库的本地副本,只需要 idversion 等信息。

这里的“version”是一个有趣的列,每次联系人发生变化时都会增加。所以你可以用它来准确地找出哪一个被改变了。

【讨论】:

以上是关于同步 Android 联系人的主要内容,如果未能解决你的问题,请参考以下文章

如何检测更新的android联系人并同步到firestore

如何使用谷歌联系人api以编程方式将手机联系人同步到android中的gmail

Android:测试同步适配器

用于在 android 和 osx 之间同步联系人的通用数据结构

获取与 facebook for android 同步的联系人照片

用于编辑联系人的蜂窝同步适配器功能