如何以编程方式删除自己的自定义损坏日历?

时间:2016-01-14 13:41:01

标签: android google-calendar-api android-permissions calendarcontract

我正在处理一个应用程序,除其他外,它允许用户创建提醒并将其保存在他的日历中。

当前代码首先创建一个本地日历,然后根据请求安静地插入事件(无需打开日历应用程序)。

问题在于,在创建日历期间,在某些设备上添加以下字段(在Samsung上),而在其他设备上,它无法直接添加它们:

contentValues.put(CalendarContract.Calendars.ACCOUNT_NAME, ApplicationState.getCurrentUser().getFullName());
contentValues.put(CalendarContract.Calendars.ACCOUNT_TYPE, "LOCAL");
contentValues.put(CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL, CalendarContract.Calendars.CAL_ACCESS_OWNER);
contentValues.put(CalendarContract.Calendars.OWNER_ACCOUNT, ApplicationState.getCurrentUser().getEmail());

由于这些行无法在某些设备上执行,因此编写的代码首先尝试使用它们创建日历,然后失败 - 没有。

上述结果是:在三星以外的大多数设备上,创建了损坏的日历,没有ACCOUNT_NAME等必填字段。

这意味着:原生谷歌日历应用程序一直崩溃,即使我删除了我的应用程序也无法打开,因为已经创建了损坏的日历。

此外,似乎我无法删除这个损坏的日历,因为我没有那些必要的字段..

我该怎么做才能解决它?

现在 - 我想要做的就是能够以编程方式从用户手机中删除这个已损坏的日历,以便日历应用再次使用。

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试使用此应用删除有问题的日历

iCal Import/Export CalDAV

打开应用程序,然后执行以下操作:

  1. 选择“编辑日历”

  2. 在Type:Local

  3. 下选择错误的日历
  4. 选择“删除日历”选项,就可以完成

希望这有助于解决您的问题。