Google Calendar Entry Alarm не работает Android

1

Мне нужно настроить будильник в календаре Google через Android-приложение. Я успешно ввел данные в календарь, даже если он показывает, что будильник установлен слишком, но когда я просматриваю детали записи календаря, он автоматически удаляет настройку тревоги.

пожалуйста, сообщите ниже, фрагмент кода.

private Uri MakeNewCalendarEntry(int calId, String title, String desc,
        String location, String matchDate) {
    ContentValues event = new ContentValues();

    String value = matchDate;
    String[] splitedTimeDate = value.split("T");

    String dateValue = splitedTimeDate[0];
    String[] timeValue = splitedTimeDate[1].split("-");

    matchDate = dateValue + " " + timeValue[0];

    event.put("calendar_id", calId);
    event.put("title", title);
    event.put("description", desc);
    event.put("eventLocation", location);

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    java.util.Date d = null;
    try {
        d = formatter.parse(matchDate);// catch exception
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    // This is the UTC Event Start Date
    Calendar calUTCEventDate = Calendar.getInstance();
    calUTCEventDate.setTime(d); // rest is the same....

    // This is the current UTC Date
    Calendar calCurrentUTCDate = Calendar.getInstance();

    TimeZone z = calCurrentUTCDate.getTimeZone();
    int offset = z.getRawOffset();
    int offsetHrs = offset / 1000 / 60 / 60;
    int offsetMins = offset / 1000 / 60 % 60;

    calCurrentUTCDate.add(Calendar.HOUR_OF_DAY, (-offsetHrs));
    calCurrentUTCDate.add(Calendar.MINUTE, (-offsetMins));

    // This is the current Device Date
    Calendar calCurrentDeviceDate = Calendar.getInstance();

    long diff = calUTCEventDate.getTimeInMillis()
            - calCurrentUTCDate.getTimeInMillis();
    long minutes = Math.abs(diff) / (1000 * 60);
    long hours = minutes / 60;

    long startTime = System.currentTimeMillis() + 1000 * 60 * 60 * hours;
    long endTime = System.currentTimeMillis() + 1000 * 60 * 60
            * (hours + 8);

    event.put("dtstart", startTime);
    event.put("dtend", endTime);

    event.put("allDay", 0); // 0 for false, 1 for true
    event.put("eventStatus", 1);
    event.put("visibility", 1);
    event.put("transparency", 0);
    event.put("hasAlarm", 1); // 0 for false, 1 for true


    Uri eventsUri = Uri.parse(getCalendarUriBase() + "events");

    Uri insertedUri = getContentResolver().insert(eventsUri, event);
    return insertedUri;
}
Теги:
google-calendar
alarm

2 ответа

3
Лучший ответ

Ниже фрагмент помог мне решить проблему...

Blockquote//Над фрагментом кода верните мне идентификатор события

            Uri newEvent = MakeNewCalendarEntry(iTestCalendarID, title,
                    desc, location, matchDate);
            int eventID = Integer.parseInt(newEvent.getLastPathSegment());

Blockquote

            final ContentResolver cr = getContentResolver();
            ContentValues values = new ContentValues();
            values.put("event_id", eventID);
            values.put("method", 1);
            values.put("minutes", 5);
            cr.insert(Uri.parse("content://com.android.calendar/reminders"), values); // for android 2.2+

          // OR 

            cr.insert(Uri.parse("content://calendar/reminders"), values); // for android 2.1 n earlier

спасибо

-y

-2

Я использую виджет GCalendar для просмотра, создания, редактирования и удаления событий Календаря Google.

http://bstdownload.com/reviews/gcalendar-widget-1/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню