我正在使用
Android日历提供程序来显示事件.
我也通过使用事件的EVENT_ID作为参考,将事件与本地应用程序数据库中的图像相关联.
我也通过使用事件的EVENT_ID作为参考,将事件与本地应用程序数据库中的图像相关联.
我现在想知道是否可以在多个设备上保持相同的参考?
我了解到,对于account_type =’com.google’,GoogleCalendarSyncAdapter使用CalendarContract.EventsColumns.SYNC_DATA1来存储事件的googleID.
然而,似乎这不是访问数据的可靠方法,因为使用SYNC_DATA列可能会随时更改,只能由SyncAdapter修改.
有没有什么其他的方式,我可以保持引用日历提供者事件跨设备?
解决方法
将图像ID嵌入到您的事件中
之前我和CalendarContract有一个类似的问题,我通过在事件描述文本中嵌入一个唯一的UID标签来解决它.客户端将解析该标签并检索常见的UID.该ID是使用UUID Java类在其中一个客户端上生成的.但是,在我的情况下,我更感兴趣的是识别通过我的应用程序创建的事件.
在您的情况下,我认为您的映像数据库引用是所有应用程序安装中一致的稳定ID.您可以在引用图形的事件描述文本中插入一个标签,例如:
<myapp:imgid_1234>
或者,您也可以为活动添加特殊的“资源类型”attendee,将事件的图像引用添加到:imgid_1234@yourappname.com.此选项将使事件描述保持干净,并可能会降低用户的意外删除.