我正在尝试从android中的应用程序打开默认日历应用程序。我确实得到了一些关于这个
的链接 Intent calendarIntent = new Intent() ;
calendarIntent.putExtra("beginTime", tempCal.getTimeInMillis());
calendarIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT |
Intent.FLAG_ACTIVITY_SINGLE_TOP);
calendarIntent.setClassName("com.android.calendar","com.android.calendar.AgendaActivity");
startActivity(calendarIntent);
这会打开日历。但是,我希望日历应用程序以月份模式打开(显示每月的天数列表)。我需要帮助。
提前致谢:)
答案 0 :(得分:5)
在Android源代码中查看日历应用程序后,您只能直接调用AgendaActivity。其他人不会工作。您可以直接与光标进行交互以读取/创建事件,但不能将日历应用程序调用到AgendaView以外的视图。原因是开发人员通过使用以下活动定义限制了Cal应用程序清单中的这种能力:
<activity android:name="MonthActivity" android:label="@string/month_view"
android:theme="@style/CalendarTheme" />
<activity android:name="WeekActivity" android:label="@string/week_view"
android:theme="@style/CalendarTheme" />
<activity android:label="@string/day_view" android:name="DayActivity"
android:theme="@style/CalendarTheme"/>
<activity android:name="AgendaActivity" android:label="@string/agenda_view"
android:theme="@android:style/Theme.Light"
android:exported="true" />
请注意,只有AgendaActivity有android:exported="true"
。如果您尝试调用其他活动,则会获得权限例外。
答案 1 :(得分:0)
首先,您应该使用由Calendar Provider
定义的日历意图。这将使其更具未来性,因为对您想要启动的活动类进行硬编码并不是一个好主意。除此之外,它可能因设备而异。
可以找到HERE的完整文档。
不幸的是,当您使用Intent.ACTION_VIEW
查看日历时,这些似乎不允许设置特定的查看模式。