Android日历提供程序:是否有可用于多个设备的事件的唯一标识符?

Chr*_*ser 10 android calendar android-contentprovider android-syncadapter

我正在使用Android日历提供程序来显示事件.我还通过使用事件的EVENT_ID作为参考,将事件与本地应用程序数据库中的图像相关联.

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

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

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

tig*_*chi 1

将图像 ID 嵌入到您的事件中

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

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

<myapp:imgid_1234>
Run Code Online (Sandbox Code Playgroud)

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