Android - 如何设置特定的日历插入事件的意图

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);

}

为了插入一个事件我使用此代码,但总是设置最后使用的日历。 我希望看到带有我的ID的日历Android - 如何设置特定的日历插入事件的意图

回答:

尝试添加日历名称而不是其ID。

intent.putExtra(CalendarContract.Calendars.ACCOUNT_NAME, "[email protected]") 

对我来说,它会在打开所选日历应用程序时设置特定的日历。

回答:

我可以通过调用如下意图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();

回答:

Intent intent = new Intent(Intent.ACTION_EDIT) 

.setType("vnd.android.cursor.item/event")

.setData(CalendarContract.Events.CONTENT_URI)

.putExtra(CalendarContract.Calendars.NAME, APPOINTMENT_CALENDAR_NAME)

.putExtra(CalendarContract.Calendars.ACCOUNT_NAME, EMAIL)

.putExtra(CalendarContract.Calendars.CALENDAR_DISPLAY_NAME, APPOINTMENT_CALENDAR_NAME)

.putExtra(CalendarContract.Events.CALENDAR_ID, getCalenderID(EMAIL, APPOINTMENT_CALENDAR_NAME));

startActivity(intent);

尝试给予更多参数供它区分。我也面临同样的问题,但是当我提供以上细节时,它重定向到更正日历。希望能帮助到你。

以上是 Android - 如何设置特定的日历插入事件的意图 的全部内容, 来源链接: utcz.com/qa/262199.html

回到顶部