我有一个应用程序,用户可以选择日期,然后打开日历,然后他们将添加一个事件或提醒。
现在我正在使用com.google.android.calendar
应用。但我正在检查是否已安装。如果没有,它应该让他们选择他们想要打开的应用程序。谁能告诉我我是怎么做到的?我几乎可以肯定我听说过这件事,但我不记得我的生活是什么叫它。
答案 0 :(得分:1)
创建意图并设置额外信息后,请致电 startActivity()将其发送到系统。如果系统识别出来 一个以上可以处理意图的活动,它显示一个 用户选择要使用的应用程序的对话框...如果只有一个 处理意图的活动,系统立即启动它。
此对话框中还有一个选项可以默认使用所选操作。
但是,如果要执行的操作可以由多个处理 应用和用户可能每次都更喜欢不同的应用 - 例如 "份额"动作,用户可能通过该动作拥有多个应用程序 他们可能会共享一个项目 - 你应该明确地显示一个选择器对话框......
此选择器对话框也称为App选择器。
简而言之,您可以通过以下方式显示App选择器:
String title = getResources().getString(R.string.chooser_title);
Intent chooser = Intent.createChooser(intent, title);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(chooser);
}
intent
是您的日历意图,例如:
Intent calendarIntent = new Intent(Intent.ACTION_INSERT, Events.CONTENT_URI);
Calendar beginTime = Calendar.getInstance().set(2012, 0, 19, 7, 30);
Calendar endTime = Calendar.getInstance().set(2012, 0, 19, 10, 30);
calendarIntent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis());
calendarIntent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis());
calendarIntent.putExtra(Events.TITLE, "New event");
calendarIntent.putExtra(Events.EVENT_LOCATION, "My house");