2012-12-27 189 views
1

我想從我的應用程序在Android中打開默認日曆應用程序。我確實得到了一些關於此的鏈接從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); 

這會打開日曆。但是,我希望日曆應用以月份模式打開(顯示月份中的天數列表)。我需要幫助。

感謝提前:)

回答

5

審查日曆應用程序在Android源代碼,你只能直接調用AgendaActivity後。其他人將無法工作。您可以直接與光標進行交互以讀取/創建事件,但您無法將日曆應用程序調用到AgendaView以外的視圖。其原因是,開發商已經有限,在清單的校準應用能力通過以下活動定義:

<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"。如果您嘗試調用其他活動,您將獲得權限異常。

+2

欲瞭解更多信息,請閱讀日曆應用程序 – thepoosh

+0

的閱讀[啓動程序活動源代碼](https://github.com/android/platform_packages_apps_calendar/blob/master/src/com/android/calendar/AllInOneActivity.java)只需要一個有用的插件,如果你需要日曆類型的觀點。 [鏈接](http://stackoverflow.com/a/8242625/539472) – Chaitanya

0

首先,您應該使用由Calendar Provider定義的日曆意圖。這將使其更具前瞻性,因爲對您要開始的活動進行硬編碼並不是一個好主意。除此之外它可以在不同設備之間變化

這些的完整文檔可以找到HERE

不幸的是,當您使用Intent.ACTION_VIEW來查看日曆時,這些似乎不允許設置特定的查看模式。

相關問題