编码
我在 Android 应用程序上实现了日历意图,如下所示:
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setData(Events.CONTENT_URI);
intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, parsedStartTime.toMillis(false))
intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, parsedEndTime.toMillis(false))
intent.putExtra(Events.TITLE, eventInfo.getName())
intent.putExtra(Events.DESCRIPTION, eventInfo.getText())
intent.putExtra(Events.EVENT_LOCATION, eventInfo.getWhere())
intent.putExtra(Events.AVAILABILITY, Events.AVAILABILITY_BUSY);
startActivity(intent);
问题
我用过ACTION_EDIT
,因为ACTION_INSERT
官方开发者指南中的内容似乎在某些设备上会产生问题。
现在,这段代码在我测试过的设备上运行良好。其中包括带有 Android 4.1.2 自定义 rom 的 Motorola Defy+ 和来自三星的带有 Android 4.1.2 的三星 Galaxy SIII Mini。
但我有报告称,在搭载 Android 4.0.4 的三星 Galaxy SII 上,该应用程序崩溃了。特别是错误:
android.content.ActivityNotFoundException
可悲的是,这是我得到的所有信息,因为我无法访问手机本身(它来自用户)。我收到了来自 Analytics 的错误。
问题
正如我在这篇文章中看到的那样,三星和日历提供商存在某种问题。有没有办法在这款手机上使用日历意图?或者我将不得不使用 getContentResolver()?
我相信在这种情况下,我必须将日历权限添加到应用程序,但用户将无法选择保存事件的日历。
任何帮助,将不胜感激!