Вставлять повторяющиеся события в календарь Android - PullRequest
0 голосов
/ 02 января 2012

У меня есть проблема, которую я не могу решить.Мне удалось вставить мои события в мой календарь Android, но я хочу, чтобы они повторялись.Для дней рождения например.Я хочу, чтобы они повторялись ежегодно.У меня есть этот код:

    final ContentResolver cr = ctx.getContentResolver();
    ContentValues cv = new ContentValues();
    cv.put("calendar_id", calIds[0]);
    cv.put("title", title);

    cv.put("rrule", "FREQ=YEARLY");
    cv.put("description", comment );
    Calendar start = Calendar.getInstance();
    start.set(2012, 0, 2, 8, 0, 0);

    Calendar end = Calendar.getInstance();
    end.set(2012, 0, 2, 9, 0, 0);

    long startTime = start.getTimeInMillis();       
    long endTime = end.getTimeInMillis();

    cv.put("dtstart", startTime);
    cv.put("dtend", endTime);
    //Insertion on the events of the calendar
    cr.insert(Uri.parse("content://com.android.calendar/events"), cv);

Он вставляет мое событие, но не повторяет его.Я имею в виду, что мое событие появляется на 2jan2012, а на 2jan2013 - нет и не появляется в 2014 году, и так далее.Итак, я открыл свой календарь на телефоне и попытался отредактировать свое событие, и я увидел, что там, где я должен выбрать его событие, там отображается «2 января 2012 года», а не «2 января», как это должно было бы быть, если бы его нужно было настроить.мое событие с моего телефона.С другой стороны, если я пытаюсь добавить событие вручную со своего телефона, это работает очень хорошо (я имею в виду, я могу добавить событие, которое происходит ежегодно).Еще одна вещь, которую я заметил, заключается в том, что если я изменю год, например, я поставлю 2010 вместо 2012, он будет включать мои события ежегодно до моей текущей даты.Чтобы быть более точным, он вставляет событие в 2jan2010, другое для 2jan2011, а для 2jan2012 оно останавливается (сегодня 2 января 2012 года), и после этой даты больше событий для этой даты не вставлено.Кто-нибудь сталкивался с такой проблемой?Любая помощь приветствуется.Спасибо!

Ответы [ 2 ]

0 голосов
/ 21 октября 2014

Поставьте «duration» вместо «dtend» в ContentValues, когда это повторяющееся событие.

См. https://stackoverflow.com/a/13839548/3629966

0 голосов
/ 13 января 2012

Судя по тому, что вы пытаетесь добавить, события, которые вы пытаетесь добавить, не повторяются после текущей даты.

Используя Календарь, вручную вставьте событие Ежегодно / Ежемесячно / Еженедельно с определенным заголовком, таким как«Тест», который повторяется после текущей даты.Затем напишите простой метод, который читает события, которые в настоящее время находятся в вашем календаре.Проверьте заголовок «Тест» и зарегистрируйте содержимое ContentValues для этого события - посмотрите, сможете ли вы обнаружить какие-либо различия.

...