Добавить EXDATE в календарь повторяющихся событий

Я использую следующий код для обновления моего повторяющегося события.

            ContentResolver cr = context.getContentResolver();
        ContentValues values = new ContentValues();
        TimeZone timeZone = TimeZone.getDefault();
        long startMillis = 0;
        long endMillis = 0;
        Calendar beginTime = Calendar.getInstance();
        beginTime.setTime(myEvent.START_DATE);
        startMillis = beginTime.getTimeInMillis();
        Calendar endTime = Calendar.getInstance();
        endTime.setTime(myEvent.END_DATE);
        endMillis = endTime.getTimeInMillis();
        values.put(CalendarContract.Events.DTSTART, startMillis);
        values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());
        values.put(CalendarContract.Events.TITLE,myEvent.TITLE);
        values.put(CalendarContract.Events.AVAILABILITY,myEvent.AVAILABILITY);
        values.put(CalendarContract.Events.ACCESS_LEVEL,myEvent.ACCESS_LEVEL);
        values.put(CalendarContract.Events.EVENT_LOCATION,myEvent.EVENT_LOCATION);          
        values.put(CalendarContract.Events.ALL_DAY,myEvent.ALL_DAY);
        values.put(CalendarContract.Events.GUESTS_CAN_INVITE_OTHERS,myEvent.GUESTS_CAN_INVITE_OTHERS);
        values.put(CalendarContract.Events.GUESTS_CAN_MODIFY,myEvent.GUESTS_CAN_MODIFY);
        values.put(CalendarContract.Events.GUESTS_CAN_SEE_GUESTS,myEvent.GUESTS_CAN_SEE_GUESTS);        
        values.put(CalendarContract.Events.DESCRIPTION, myEvent.Note);
        values.put(CalendarContract.Events.CALENDAR_ID, myEvent.ID);
        if(myEvent.RRULE != null && myEvent.RRULE.length()>0)
        {           
            values.put(CalendarContract.Events.RRULE,myEvent.RRULE);
            long duration = Math.max(0,endMillis- startMillis);
            if(duration > 0)
                values.put(CalendarContract.Events.DURATION, endMillis);
            if(myEvent.EXDATE != null && myEvent.EXDATE.length()>0)
            {           
                values.put(CalendarContract.Events.EXDATE,myEvent.EXDATE);
            }               
        }
        else
        {
            values.put(CalendarContract.Events.DTEND, endMillis);
        }
        Uri updateUri = ContentUris.withAppendedId(Events.CONTENT_URI, myEvent.EVENT_ID);
        rowUpdated= cr.update(updateUri, values, null, null);

Я добавил дату исключения. После этого событие RRULE становится нулевым, когда я читаю событие в следующий раз. Все экземпляры этого события исчезли. очень трудно запрограммировать повторяющиеся события, потому что не хватает документов для поиска информации. Пожалуйста помоги!

0 ответов

Другие вопросы по тегам