我有一个应用程序,使用提供程序content://com.android.calendar/events
将日历事件插入到Android日历中(对于Android 2.2,其他为content://calendar/events
)。
这通常很好用,在我的Nexus One上,事件会被添加并正确同步到Google日历。
但是,在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类中所示。
答案 0 :(得分:3)
请注意,当您执行诸如编写原始字符串之类的内容时:
"content://com.android.calendar/events"
"com.android.calendar"
您正在使用私有API。无法保证这适用于任何特定平台或设备,因为它们不属于SDK。
目前,日历数据库没有公共API。
答案 1 :(得分:2)
Commonsware是正确的。三星已在手机上修改了日历应用程序。该应用程序不仅使用谷歌,交换和Facebook日历,但他们还放入了一个名为“我的日历”的“收藏家”日历。
带有TouchWiz的Galxy S上的日历应用程序是错误的。有些东西有用,有些则没有。有一个已知错误,显示前一天结束的所有日期事件。在2.2的官方更新发布之前,此日历不可靠。
其他电话公司也可能对他们的手机也这样做,因为@hackbod指出日历数据库没有公共API。