小编har*_*sel的帖子

将带有 ACCOUNT_TYPE_LOCAL 的日历添加到 Android 4 使其日历崩溃

我想向 Android 添加一个未同步的新日历。我编写了一个应用程序,它使用 API 级别 14 的新 CalendarContract API 执行此操作。以下代码工作正常。我可以在 Android 的日历应用程序中看到新日历并向其添加事件。

问题是当我选择时 Android 日历应用程序崩溃:菜单 -> 日历显示 -> 日历同步

我的代码有问题还是Android日历中的错误?

请注意,我不想实际使用同步适配器。CalendarContract.Calendars 的文档说这不是必需的:“如果需要本地日历,应用程序可以通过作为同步适配器插入并使用 ACCOUNT_TYPE_LOCAL 的 ACCOUNT_TYPE 来实现。” 我知道“作为同步适配器插入”意味着将 (CalendarContract.CALLER_IS_SYNCADAPTER, "true") 附加到 URI。

public class CalendarMapper {

private static final String ACCOUNT_NAME = "private";
private static final String INT_NAME_PREFIX = "priv";

private static Uri buildCalUri() {
    return CalendarContract.Calendars.CONTENT_URI
            .buildUpon()
            .appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
            .appendQueryParameter(Calendars.ACCOUNT_NAME, ACCOUNT_NAME)
            .appendQueryParameter(Calendars.ACCOUNT_TYPE, CalendarContract.ACCOUNT_TYPE_LOCAL)
            .build();
}

private static ContentValues buildContentValues(Calendar calendar) {
    String dispName = calendar.getName();  //Calendar.getName() returns a String
    String …
Run Code Online (Sandbox Code Playgroud)

android android-calendar android-4.0-ice-cream-sandwich

5
推荐指数
1
解决办法
3625
查看次数