0

我有一个使用提供程序将日历事件插入 Android 日历的应用程序content://com.android.calendar/events(对于 Android 2.2,否则它是content://calendar/events)。

这通常工作得很好,在我的 Nexus One 上,事件被添加并正确同步到谷歌日历。

但是,在 Galaxy S 上,添加到 Google 帐户日历的新事件会在手机上正确显示,但不会同步回 Google 日历。即使在手机设置中强制进行同步后,新事件也不会出现在 Google 日历中(从网络上查看)。

而在同一部手机上,使用内置三星日历应用程序添加到同一 Google 日历的新活动确实会同步到 Google 日历。

有谁知道如何让新事件从 Galaxy S 同步到 Google?

一些代码:我的实际插入是这样完成的:

Builder b = ContentProviderOperation.newInsert("content://com.android.calendar/events").withValues(values);
ops.add(b.build());    
getContentResolver().applyBatch("com.android.calendar", ops);

这类似于库存 Android 日历应用程序的插入方式,如 AOSP EditEvent类中所示。

4

2 回答 2

3

请注意,当您执行诸如编写原始字符串之类的操作时:

"content://com.android.calendar/events"
"com.android.calendar"

您正在使用私有 API。无法保证这将在任何特定平台或设备上运行,因为它们不是 SDK 的一部分。

目前没有用于日历数据库的公共 API。

于 2011-01-05T01:35:53.570 回答
2

共通是正确的。三星修改了手机上的日历应用程序。该应用程序不仅使用 google、exchange 和 facebook 日历,而且还放入了一个名为“我的日历”的“收藏家”日历。

带有 TouchWiz 的 Galxy S 上的日历应用程序有问题。有些东西有效,有些则无效。有一个已知错误会显示前一天结束的全天事件。在 2.2 的官方更新发布之前,这个日历是不可靠的。

其他电话公司也可能对他们的手机做同样的事情,因为正如@hackbod 指出的那样,日历数据库没有公共 API。

于 2011-01-05T01:54:48.997 回答