3
public static void insertEventWithName(Context ctx, long id, String eventName, String descriptionEvent, Calendar beginTime) {

    intent.putExtra(Events.CALENDAR_ID, (int) id);
    Intent intent = new Intent(Intent.ACTION_INSERT);
    intent.setData(Events.CONTENT_URI);
    intent.putExtra(Events.TITLE, eventName);
    intent.putExtra(Events.DESCRIPTION, descriptionEvent);
    intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME,beginTime.getTimeInMillis());
    intent.putExtra(Events.ACCESS_LEVEL, Events.ACCESS_PRIVATE);
    intent.putExtra(Events.AVAILABILITY, Events.AVAILABILITY_BUSY);
    ctx.startActivity(intent);
}

イベントを挿入するには、このコードを使用しますが、常に last used calendar に設定されています。ID付きのカレンダーを見たい

4

3 に答える 3

0

ID の代わりにカレンダー名を追加してみてください。

 intent.putExtra(CalendarContract.Calendars.ACCOUNT_NAME, "test@gmail.com")

私にとっては、選択したカレンダー アプリケーションを開くと、特定のカレンダーが設定されます。

于 2015-07-16T22:58:52.703 に答える
0

setData以下のようにインテントを呼び出すことで、特定のカレンダーを呼び出すことができます。

intent.setData(buildCalUri());

buildCalUri が特定のカレンダーの作成に使用される URI を返す場所

public static Uri buildCalUri() {
        return CalendarContract.Calendars.CONTENT_URI.buildUpon()
                .appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
                .appendQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME, ACCOUNT_NAME)
                .appendQueryParameter(CalendarContract.Calendars.ACCOUNT_TYPE, ACCOUNT_TYPE).build();
于 2016-07-19T09:17:13.537 に答える