我如何让用户从他们的设备日历中选择一个活动?
Android Calendar Provider Documentation和this 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_VIEW
。 ACTION_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 }
似乎使用意图是不可能的?
答案 0 :(得分:0)
好像您的设备没有Future[U]
个应用程序。
我建议你每次尝试发送一个隐含的意图时都要使用Future.exception(xxxxx)
检查。
在没有Calendar
应用的情况下获取日历信息的唯一方法是使用日历内容提供商,如here所述