google-calendar-api - 谷歌日历 API 中的 calendarId、eventId 是否与 android 提供程序 API 相同?
问题描述
使用 android 日历提供程序,您可以查询事件实例,其中包含一个 calendarId 值和一个 eventId 值。这些值是否与您直接使用谷歌日历 API 查询时获得的值相同?
例如,每次清除日历数据然后同步时,calendarId 和 eventId 值是否会与上一次相同,即持久化?或者它们是否会由提供商在本地重新生成,并带有一些映射到实际谷歌日历中的相应事件?
换句话说,对于给定的用户,对 [calendarId, eventId] 是有效的持久 UID 吗?
解决方案
不,它们不一样。Android 日历和事件 ID 是基础 SQLite 表中的行 ID,并且在插入新日历或事件时自动递增。
查看如何在CalendarDatabaseHelper.java,第 523 行和CalendarDatabaseHelper.java,第 767_ID
行中创建事件和日历列。请注意,对于日历,它没有明确指定,但如果在插入日历时没有指定,则会自动确定(参见SQLite Autoincrement)。AUTOINCREMENT
_ID
与 Google API ID 的任何相似之处纯属巧合。
编辑:
解决您关于使用 UID 来识别相同元素的评论:
对于有一个通用 ID 的事件,请参阅iCalUID和UID_2445。这些基本上是相同的字段,我希望它们对于相同的事件具有相同的值。
请注意,即使UID_2445
在 Android 上调用了该字段,它也与 RFC 5545 中的字段相同,因为 RFC 5545 是 RFC 2445 的继承者,并且 UID 字段在两个规范中具有相同的含义。
推荐阅读
- node.js - 在 docker 容器内的路径中找不到 Phantomjs
- mysql - MySQL 将两列合并为一列,其中一列具有 NULL 值(应删除)
- python - 如何通过 cloudpickle 腌制 python-attrs 类函数?
- android - Ionic Contacts 插件未在 Android 上保存联系人
- salesforce - DocuSign for Salesforce URL 按钮中的撇号
- javascript - MomentJs 给出错误的月份
- unit-testing - Testhost.exe 已退出,代码为 -1 (0xffffffff)
- python - AttributeError:模块没有属性,同时避免循环引用错误
- html - CSS - 在三列中对齐 div 元素
- opencv - 使用 Opencv 进行 Python 多线程视频处理 - 停止视频后 setMouseCallback 不起作用