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