Jas*_*sit 16 android google-calendar-api android-calendar
我基本上想重新打开以下未答复的帖子:
我想利用Android日历提供程序API来创建日历并在其中插入事件.创建的日历不能是本地副本.它必须与Google(在线)日历同步.文档说,为了做到这一点,我必须使用同步适配器.但是我该如何编写这样的同步适配器呢?
到目前为止,我发现以下两个帖子但没有解决方案.
我想为此使用Android日历API而不是Google API,以便用户可以脱机工作.
看起来Google在这方面搞砸了CalendarContract。文档尚不完全清楚:
...插入新日历应作为同步适配器进行。
在我看来,这句话的表达方式似乎很有可能会奏效。但是实际上,使用CalendarContract(判断您所链接的其他SO问题)的应用程序无法创建同步日历。
您真的不想经历创建自己的SyncAdapter的所有麻烦。我为我的一个应用程序做了一次,因为我想要一个可靠的解决方案,以便在Ice Cream Sandwich之前的设备(尚不存在CalendarContract)上实现同步日历访问。
这是很多工作。它涉及到与Google Calendar Web服务API的接口(同时遵守其访问限制),保留数据的本地副本并仅同步差异。最终,您自己的SyncAdapter还将复制已经存在的Google Calendar SyncAdapter的数据。
作为解决方法,您可以直接在Google Calendar online API上直接实现必要的“创建日历”功能。它要求您的应用通过要求用户授权android.permission.USE_CREDENTIALS。
AccountManager可用于获取访问Google Calendar API的正确授权令牌。该方法getAuthToken需要auth令牌类型参数。日历读/写访问的正确方法是以下字符串文字:"Manage your calendars"。
但是,该解决方法有两个大问题:
您无法确定日历同步后端是否使用Google日历。不幸的是,这是一个黑匣子。
您无法确定日历同步适配器何时会赶上这些更改。我猜有可能以某种方式强制重新同步。但是即使那样,您的应用也将停滞不前。您不能仅基于该新日历进行操作并立即使用它。您的应用必须等待直到同步发生。
您可以为此轮询CalendarContract。让您的应用程序等待,并在后台线程中查找更改,直到出现新日历为止。然后,您有了它的本地ID,然后继续。
| 归档时间: |
|
| 查看次数: |
7872 次 |
| 最近记录: |