5

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

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

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

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 等必填字段。

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

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

我能做些什么来修复它?

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

谢谢!

4

1 回答 1

0

尝试使用此应用程序删除故障日历

iCal 导入/导出 CalDAV

打开应用程序并执行以下操作:

  1. 选择编辑日历

  2. 在 Type:Local 下选择错误的日历

  3. 选择删除日历选项,您就完成了

希望这对您的问题有所帮助。

于 2019-06-21T07:29:20.687 回答