【问题标题】:Calendar insert on Galaxy S not syncing to Google CalendarGalaxy S 上的日历插入未同步到 Google 日历
【发布时间】:2011-01-04 23:03:04
【问题描述】:

我有一个应用程序,它使用提供程序 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 类中所示。

【问题讨论】:

  • 请记住,您使用的内容提供程序是应用程序的功能,而不是操作系统。该应用程序及其内容提供商可能会或可能不会在任何给定设备上使用,可能会或可能不会在任何给定设备上进行修改,等等。如果我不得不猜测,三星修改后的应用程序本身不使用内容提供程序界面,选择其他一些支持同步的私有 API。

标签: android calendar galaxy


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 附言。在 Nexus One 和其他原版 android 设备上,唯一的日历很可能是谷歌日历。在三星 Galaxy S 系列手机上,自动有 2 个日历。我的日历和 Google 日历。您必须检索日历列表才能确定它们的顺序。您很可能发布到我的日历日历,它不与谷歌同步。
    • 嗨,火卫一。感谢您的评论,但我知道三星的“我的日历”。我正在向 Google 帐户日历添加活动,它们会显示在手机上,但不会同步回来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    相关资源
    最近更新 更多