2

我希望启动 Android 系统日历 UI 以插入新事件。

我在 4.0(IceCream) 上使用以下代码,它可以工作。

Intent calIntent = new Intent(Intent.ACTION_INSERT);
calIntent.setType("vnd.android.cursor.item/event");
calIntent.putExtra("title", summary);
calIntent.putExtra("description", description);
calIntent.putExtra("beginTime", startts);
calIntent.putExtra("endTime", stopts);
startActivity(calIntent);

但它在 GingerBread(2.3) 或 Froyo(2.2) 上失败了,我得到了 NoActivityFound 异常:没有找到处理意图的活动。

4.0以下有什么方法可以打开安卓系统日历吗?

我看到一些关于我的问题的线程。所有答案都会立即将事件插入日历,而无需启动系统日历。我希望启动系统日历并让用户确认他们是否要插入事件。

4

1 回答 1

2

在 API 级别 14 中将 CalendarContract 内容提供程序添加到 Android SDK。这组 API 允许第三方开发人员访问和操作用户日历数据,前提是用户已在设备上配置了日历应用程序。用户可能没有配置日历支持,或者他们可能有多个日历实例(工作与娱乐)。

支持较旧的 Android 设备

不幸的是,this Calendaring APIs are not backwards compatible with older versions of the platform (prior to Android 4.0, or API Level 14).这些功能不是最新支持包的一部分,我们不希望在未来的版本中看到它。如果您的应用程序必须尝试在旧平台版本上使用日历,请参阅我们关于非官方访问用户日历的另一篇文章,但请了解您在使用它时没有遵循 Android 最佳实践。话虽这么说,差异非常小。实际上,CalendarContract 记录了以前未记录的 API。一些值发生了变化,但创建一个兼容接口以与旧版本和新版本一起工作可能对那些需要它的人来说是可能的。但是,有些旧手机无法使用未记录的方法,因此解决方案仍然不完美。

于 2012-12-22T05:37:26.967 回答