Доступ к идентификатору календаря по умолчанию

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

private void addReminder(int statrYear, int startMonth, int startDay, int startHour, int startMinut, String title){
    Calendar beginTime = Calendar.getInstance();
    beginTime.set(statrYear, startMonth, startDay, startHour, startMinut);
    long startMillis = beginTime.getTimeInMillis();

    // String to access default google calendar of device for Event setting.
    String eventUriString = "content://com.android.calendar/events";


    ContentValues eventValues = new ContentValues();
    eventValues.put(Events.CALENDAR_ID, 1);
    eventValues.put(Events.TITLE, title);
    eventValues.put(Events.DESCRIPTION, "Discription");
    eventValues.put(Events.EVENT_TIMEZONE, "India");
    eventValues.put(Events.DTSTART, startMillis);
    eventValues.put("eventStatus", 1);
    eventValues.put("visibility", 3);
    eventValues.put("transparency", 0);
    eventValues.put(Events.HAS_ALARM, 1);

    // Set Event in calendar.
    Uri eventUri = getContentResolver().insert(Uri.parse(eventUriString), eventValues);
    // Getting ID of event in Long.
    long eventID = Long.parseLong(eventUri.getLastPathSegment());

    /***************** Event: Reminder(with alert) Adding reminder to event *******************/
    // String to access default google calendar of device for reminder setting.
    String reminderUriString = "content://com.android.calendar/reminders";      
    ContentValues reminderValues = new ContentValues();

    reminderValues.put("event_id", eventID);
    reminderValues.put("minutes", 1);
    reminderValues.put("method", 1);        

    //Setting reminder in calendar on Event.
    Uri reminderUri = getContentResolver().insert(Uri.parse(reminderUriString), reminderValues);
}

Теперь этот код работает нормально, чтобы добавить напоминания о "Samsung Galaxy S2" и других устройствах, кроме "Sony Xperia".

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

Пожалуйста, предложите мне, что я на правильном пути, или есть какая-то другая проблема, из-за которой напоминание не устанавливается в "Sony Xperia". Я тестировал этот код на "Samsung Galaxy S2" и некоторых устройствах "Samsung, LG и Sony Xperia".

Пожалуйста, предложите мне, что мне делать.

Благодарю вас

1 ответ

Я думаю, что идентификаторы календаря назначаются календарям, начиная с 1. Таким образом, встроенный календарь по умолчанию, если он присутствует, будет иметь идентификатор 1, иначе пользователь должен добавить календарь, прежде чем появится календарь с идентификатором =1.

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