2013-02-14 4 views
2

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

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.

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

Спасибо

ответ

3

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

Смежные вопросы