用户选择日历事件

时间:2016-10-09 04:57:56

标签: android android-intent calendar

我如何让用户从他们的设备日历中选择一个活动?

Android Calendar Provider Documentationthis question表示您可以使用Intent查看日历,如下所示:

long startMillis = System.currentTimeMillis();

// using content://com.android.calendar/time/<ms_since_epoch>

Uri.Builder builder = CalendarContract.CONTENT_URI.buildUpon();
builder.appendPath("time");
ContentUris.appendId(builder, startMillis);
Intent intent = new Intent(Intent.ACTION_VIEW).setData(builder.build());
startActivity(intent);

但是,这只允许我们使用意图打开日历进行查看。

我如何在选择时返回事件ID?

更新1:对于微笑,查看开发者指南,我将尝试Intent.ACTION_PICK而不是Intent.ACTION_VIEWACTION_PICK未在日历提供程序中定义,但值得一试。请注意,Intent.ACTION_VIEW之前确实有效。

更新2 :正如预期的那样,运行时在使用ACTION_PICK时抛出了这个:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.PICK dat=content://com.android.calendar/time/1475990157934 }

似乎使用意图是不可能的?

1 个答案:

答案 0 :(得分:0)

好像您的设备没有Future[U]个应用程序。 我建议你每次尝试发送一个隐含的意图时都要使用Future.exception(xxxxx)检查。 在没有Calendar应用的情况下获取日历信息的唯一方法是使用日历内容提供商,如here所述