Я пытаюсь вставить новое событие в календарь по умолчанию. До сих пор я пытался два метода:Добавление события в Android по умолчанию Календарь автоматически
1. Добавление события календаря (но не отображается на Default Calendar App)
код используется somekind как ниже
ContentValues event = new ContentValues();
event.put(CalendarContract.Events.CALENDAR_ID, calID);
event.put(CalendarContract.Events.TITLE, appointment.mTitle);
event.put(CalendarContract.Events.DESCRIPTION, appointment.mDescription);
event.put(CalendarContract.Events.EVENT_LOCATION, appointment.mAddress);
event.put(CalendarContract.Events.DTSTART, appointment.mStartTime);
event.put(CalendarContract.Events.DTEND, appointment.mEndTime);
event.put(CalendarContract.Events.ALL_DAY, 0); // 0 for false, 1 for true
event.put("eventStatus", 1); // 0 for tentative, 1 for confirmed, 2 for canceled
event.put(CalendarContract.Events.HAS_ALARM, 1); // 0 for false, 1 for true
event.put(CalendarContract.Events.EVENT_TIMEZONE, TZone.getJavaTimeZoneId(appointment.mTZone));
Uri url = getContentResolver().insert(eventUri, event);
2. Использование Намерение, которое открывает приложение Calendar
Несмотря на то, что это открытие приложения для календарей, но оно не сохранялось автоматически. пользователь должен нажать кнопку «Сохранить», чтобы сохранить его.
Intent intent = new Intent(Intent.ACTION_INSERT)
.setData(Events.CONTENT_URI)
.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, appointment.getStartOfCompleteDateAndTimeOfEvent())
.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, appointment.getEndOfCompleteDateAndTimeOfEvent())
.putExtra(Events.TITLE, appointment.mTitle)
.putExtra(Events.DESCRIPTION, appointment.mDescription)
.putExtra(Events.EVENT_LOCATION, appointment.mAddress)
;
startActivity(intent);
То, что я на самом деле хочу сделать это, чтобы объединить эти два метода, которые, чтобы произвести автоматическую вставку события календаря в календарь приложения и если событие календаря открыть, событие уже хранятся и могут быть просмотрены через приложение по умолчанию для календарей.
Если кто-нибудь знает, пожалуйста, помогите. Большое спасибо.
Установили ли вы права на файл манифеста для записи в календарь? https://developer.android.com/guide/topics/providers/calendar-provider.html#manifest –
Я сделал. событие календаря фактически сохранено, но я не вижу его в приложении календаря. – yodann