Ввод данных в календаре из моего приложения - запись в день рождения вместо событий или напоминаний

Для первого условия if (regularObject.getSchedule() == 1) данные попадают в события календаря, но для другого условия он переходит в дни рождения вместо событий. Я хочу, чтобы все они были в событиях или напоминаниях.

Любое решение?

    String eventUriString = "content://com.android.calendar/events";
    ContentResolver cr = this.getContentResolver();
    ContentValues values = new ContentValues();

    if (routineObject.getSchedule() == 1) {

        dateTimeString = dateString + " " + SelectedTime;
        Date dateDateTime;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH : mm");

        try {
            dateDateTime = sdf.parse(dateTimeString);
        } catch (ParseException e) {
            e.printStackTrace();
            dateDateTime = new Date();
        }
        long millisecondsTimesNew = dateDateTime.getTime();

        values.put(CalendarContract.Reminders.CALENDAR_ID, routineObject.getId());
        values.put(CalendarContract.Reminders.TITLE, "Routineer");
        values.put(CalendarContract.Reminders.DTSTART, millisecondsTimesNew);
        values.put(CalendarContract.Reminders.DESCRIPTION, todoTextOneTIme);
        values.put(CalendarContract.Reminders.DTEND, millisecondsTimesNew);
        values.put(CalendarContract.Reminders.HAS_ALARM, true);
        values.put(CalendarContract.Reminders.EVENT_TIMEZONE, TimeZone.getDefault().getID());


    } else if (routineObject.getSchedule() == 2) {

        Date mDate;
        SimpleDateFormat sdfdate = new SimpleDateFormat("yyyy-MM-dd");
        try {
            mDate = sdfdate.parse(endDate);

        } catch (ParseException e) {
            e.printStackTrace();
            mDate = new Date();
        }
        long EndtimeInMilliseconds = mDate.getTime();

        dateTimeStringEveryday = startDate + " " + SelectedTime;
        Date dateDateTimeEveryday;
        SimpleDateFormat sdfEveryday = new SimpleDateFormat("yyyy-MM-dd HH : mm");

        try {
            dateDateTimeEveryday = sdfEveryday.parse(dateTimeStringEveryday);
        } catch (ParseException e) {
            e.printStackTrace();
            dateDateTimeEveryday = new Date();
        }
        long millisecondsStartTimesEveryday = dateDateTimeEveryday.getTime();

        values.put(CalendarContract.Reminders.CALENDAR_ID, routineObject.getId());
        values.put(CalendarContract.Reminders.TITLE, "Routine Everyday");
        values.put(CalendarContract.Reminders.DTSTART, millisecondsStartTimesEveryday);
        values.put(CalendarContract.Reminders.HAS_ALARM, true);
        values.put(CalendarContract.Reminders.RRULE, "FREQ=DAILY"); //UNTIL=1924885800000
        values.put(CalendarContract.Reminders.DTEND,EndtimeInMilliseconds);
        values.put(CalendarContract.Reminders.DESCRIPTION, todoTextEveryDay);
        values.put(CalendarContract.Reminders.EVENT_TIMEZONE, TimeZone.getDefault().getID());
    }



    Uri eventUriOneTime = this.getApplicationContext().getContentResolver().insert(Uri.parse(eventUriString), values);
    eventID = Long.parseLong(eventUriOneTime.getLastPathSegment());
    alertSelection();

Ответ 1

Главный виновник в коде ur:

values.put(CalendarContract.Reminders.CALENDAR_ID, routineObject.getId());

Возникает проблема при установке идентификатора текущего объекта Object в случае ur

Some devices uses calendar id = 1 for birthdays but generally not. 

Вот причина, по которой события ur переносятся в календарь рождения, U, возможно, устанавливал Id из обычных объектов как 1, а u создавал объекты Java.

Пожалуйста, установите соответствующий идентификатор не равным 1 для обычных объектов, которые вы намереваетесь не вводить в дни рождения вместо событий.