当前位置: 首页 > 知识库问答 >
问题:

Android日历提供商Sync-Sync_数据列?

卢普松
2023-03-14

我想在Android内部日历和我的应用程序之间进行同步。我正在使用Android API 14以后的CalendarContract。

内容提供商“com.android.calendar”调用PerformSync(..)的任何更改我的同步适配器。但是,此时,所有事件行都设置为DIRTY=0。这意味着,谷歌日历同步必须将脏标志设置为零,我的同步适配器才能访问它们。

日历合同。事件列。SYNC_DATA1-SYNCDATA10被称为内容提供商的列,用于同步适配器。有人知道这些列的用途有什么约定吗?我意识到,在我的设备上,SYNC\u DATA5存储上次修改的日期,而SYNC\u DATA1似乎存储谷歌事件ID。因此,似乎每当日历应用程序与谷歌日历同步时,这些列都会被修改。

然而,如果我选择将其中一列用于我的同步适配器,我如何确保另一个应用程序不使用完全相同的列,并且它们相互覆盖?

如果Google日历总是使用SYNC_DATA5来存储上次修改的日期,我可以将其用于我的同步逻辑,我只需要确定这是一个约定。

共有1个答案

濮阳奇逸
2023-03-14

SYNC_DATA列可以用于任何值。我不确定谷歌日历是如何做到这一点的,但它们是用于与你的同步适配器相关的东西的,不同步日历的应用程序不能使用它们。因此,您可以安全地使用任何列(假设您不在应用程序的不同版本之间更改它,或者您必须编写迁移代码),因为您的日历上不应该有任何其他同步适配器工作。

当不是同步适配器时,您不能依赖SYNC_DATA列,当日历不是“您的”时,不要使用它们。

但是,我有一种强烈的感觉,您没有正确同步。要同步日历,您必须使用单独的日历,而不是由google或任何其他第三方应用程序同步的任何日历。我还将列出我认为您执行的其他一些步骤,但可能对其他人有所帮助。

您还需要在对系统的任何请求中附加一些参数,以便访问同步适配器字段。此外,您应该仅从AbstractThreadedSyncAdapter实现同步日历。为此,如果您还没有身份验证器,您还需要提供一个身份验证器(因此用户将能够在帐户的同步首选项中启用/禁用您的同步适配器)。关于同步适配器的概述可以在这篇博文中找到。

如果您没有服务器端帐户并且只有一个日历,那么在第一次启动时需要做一些事情:

  1. 创建帐户

在此之后,Android将负责不时执行您的sync adapter,您可以在不发生冲突的情况下(在您创建的日历中)访问sync_数据列,并正确地提供脏标志。

 类似资料:
  • Galaxy S3-GPS图标没有出现,它没有启动onLocationChanged方法。(好吧) Htc one M8-GPS图标出现,闪烁,并触发onlocationchange(但如何?) 这时问题突然出现 null null

  • 我正在尝试开发一个android应用程序,该应用程序使用GPS或网络提供商获取设备纬度和经度,以该过程可用的为准。当设备的GPS打开时,代码工作得非常好,但不幸的是,当设备的GPS关闭时,它永远不会工作。 例如,我想根据可用的提供商获取设备的纬度和经度;如果设备的GPS打开,它应该使用GPS提供商获取设备的纬度和经度,如果GPS关闭,它应该使用网络提供商获取设备的纬度和经度。在我的情况下,网络提供

  • 我们针对Office365使用Exchange Web服务(EWS)API在用户的日历中创建日历事件。这对于内部部署很好,但是对于Office365部署,我们似乎很快就遇到了限制。 创建16个事件后,在16个不同用户的日历中(来自服务帐户,使用对日历的委托访问权),我们收到以下错误: null 有没有人知道克服这种限制的方法,例如,我们可以调用关闭office365端的缓存邮箱会话?或者房间里是否

  • 我正在开发一款应用程序,它(至少)有两种不同的软件包名称,因此就Android系统而言,实际上有两种不同的应用程序。该应用程序使用Facebook共享,因此我在清单中声明了提供商: 这是根据Facebook的指示完成的:https://developers.facebook.com/docs/sharing/android 这适用于一个应用程序,但尝试在同一设备上安装第二个应用程序失败,错误INS

  • 在 Pagination 和 Sorting 部分, 我们已经介绍了如何允许终端用户选择一个特定的数据页面,根据一些字段对它们进行展现与排序。 因为分页和排序数据的任务是很常见的,所以Yii提供了一组封装好的data provider类。 数据提供者是一个实现了 yii\data\DataProviderInterface 接口的类。 它主要用于获取分页和数据排序。它经常用在 data widge

  • PagodaBox AppFog Heroku fortrabbit Engine Yard Cloud Red Hat OpenShift Platform AWS Elastic Beanstalk Windows Azure Google App Engine Jelastic Platform.sh Cloudways IBM Bluemix Cloud Foundry Pivotal W