12

我正在使用 Android Calendar Provider 来显示事件。我还通过使用事件的 EVENT_ID 作为参考,将事件与来自本地应用程序数据库的图像相关联。

我现在想知道是否可以在多个设备上保持相同的引用?

我知道对于 account_type = 'com.google',GoogleCalendarSyncAdapter 使用 CalendarContract.EventsColumns.SYNC_DATA1 来存储事件的 googleID。但是,这似乎不是访问数据的可靠方法,因为 SYNC_DATA 列的使用可能随时更改,并且只能由 SyncAdapter 修改。

有没有其他方法可以跨设备保留对日历提供程序事件的引用?

4

1 回答 1

1

将图像 ID 嵌入到您的活动中

不久前,我遇到了与 CalendarContract 类似的问题,我通过将唯一的 UID 标签嵌入到事件描述文本中来解决它。客户端将解析该标签并检索公共 UID。该 ID 是在使用UUID Java 类的客户端之一上生成的。但是,就我而言,我对识别使用我的应用程序创建的事件更感兴趣。

在您的情况下,我假设您的图像数据库引用是在所有应用程序安装中一致的稳定 ID。您可以在引用数据库中图像的事件描述文本中插入一个标签,例如:

<myapp:imgid_1234>

或者,您也可以向您的活动添加一个特殊的“资源类型”与会者,将该图像引用添加到活动:imgid_1234@yourappname.com. 此选项将保持事件描述的简洁,并可能减少用户意外删除。

于 2014-01-17T17:11:58.547 回答