我想向 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)