Добавить напоминание в календарь - PullRequest
1 голос
/ 13 мая 2011

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

Calendar cal = Calendar.getInstance();              
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("beginTime", cal.getTimeInMillis());
intent.putExtra("allDay", false);
intent.putExtra("rrule", "FREQ=DAILY");
intent.putExtra("endTime", cal.getTimeInMillis()+60*60*1000);
intent.putExtra("title", "A Test Event from android app");
intent.putExtra("description", "Who knows! this might work");
intent.putExtra("eventLocation", "Hope this time it works");
intent.putExtra("hasAlarm", 1);
startActivity(intent);

У меня вопрос, можно ли будет отредактировать этот код, чтобы я мог добавить напоминание в календарь?

1 Ответ

2 голосов
/ 13 мая 2011

На форумах есть несколько сообщений о том, как этого можно достичь. Существует несколько способов, в том числе использование некоторых API-интерфейсов, обнаруженных в коде Google, но я нашел более простой метод, хотя раньше я его не пробовал и не уверен, но подозреваю, что предупреждение, которое он вызывает, основано на значении по умолчанию. , Но с некоторыми исследованиями вы сможете найти способ настроить его.

В любом случае, как указано здесь: как редактировать календарь событий с помощью приложения для Android

Вы должны использовать объект ContentValues, который работает как запись календаря

ContentValues event = new ContentValues();

Для этого объекта вы можете активировать будильник следующим образом:

event.put("hasAlarm", 1); // 0 for false, 1 for true

В посте не говорится о том, как устанавливать настройки будильника, но вы можете найти их, выяснив, какие строковые ключи можно использовать для метода put при использовании ContentValues ​​для намерений Календаря.

Как только вы закончите, вы можете поместить событие в календарь следующим образом:

Uri eventsUri = Uri.parse("content://calendar/events");
Uri url = getContentResolver().insert(eventsUri, event);
...