2014-02-12 4 views
7

Мне нужно открыть приложение «Календарь для Android» с некоторыми предварительно заполненными данными. Логика, Iam использованием кажется для заполнения поля как:Как программно заполнить раздел напоминаний в приложении «Календарь» Android-устройства?

  1. Описание события расположение
  2. Event
  3. С даты, на сегодняшний день
  4. Целый день/не
  5. Repeat/Рецидив Информация

Я не могу заполнить раздел «Напоминания», я хотел бы заполнить раздел «Напоминания». Это будет здорово помочь вам в этом

Вот код, который я использую, чтобы открыть приложение «Календарь» и заполнить дату.

// Intent to open Calendar Event 
Intent intent = new Intent(Intent.ACTION_INSERT) 
       .setData(Events.CONTENT_URI); 
intent.putExtra(Events.DESCRIPTION, desc); 
intent.putExtra(Events.EVENT_LOCATION, location); 
intent.putExtra(Events.TITLE, summary); 
intent.putExtra(Events.EVENT_TIMEZONE, beginTime.getTimeZone().getID()); 
intent.putExtra(Events.STATUS, statusStr); 
intent.putExtra(Events.VISIBLE, transparency); 
intent.putExtra(Events.RRULE, "FREQ=YEARLY;INTERVAL=1;BYYEARDAY=1,2;UNTIL=20161210;"); 
intent.putExtra(Events.EXDATE, androidExDateStr.toString()); 

// Not sure on how to use CalendarContract.Reminders, Tried the following but does not seem to be working 
intent.putExtra(CalendarContract.Reminders.DESCRIPTION, desc); 
intent.putExtra(CalendarContract.Reminders.EVENT_LOCATION, location); 
intent.putExtra(CalendarContract.Reminders.TITLE, summary); 
intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis()); 
intent.putExtra(CalendarContract.Reminders.DTSTART, beginTime.getTimeInMillis()); 
intent.putExtra(CalendarContract.Reminders.EVENT_TIMEZONE, beginTime.getTimeZone().getID()); 
intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis()); 
intent.putExtra(CalendarContract.Reminders.DTEND, endTime.getTimeInMillis()); 
intent.putExtra(CalendarContract.Reminders.STATUS, statusStr); 

intent.putExtra(CalendarContract.Reminders.RRULE,"FREQ=YEARLY;INTERVAL=1;BYYEARDAY=1,2;UNTIL=20161210;"); 
intent.putExtra(CalendarContract.Reminders.EXDATE, androidExDateStr.toString()); 

//intent.putExtra(CalendarContract.Reminders.METHOD, Reminders.METHOD_EMAIL); 
//intent.putExtra(CalendarContract.Reminders.MINUTES, reminderVal) ; 

//intent.putExtra(CalendarContract.Events.HAS_ALARM, 1); 
//} 

try { 
    context.startActivity(intent); 
} catch(Exception e) { 
    e.printStackTrace(); 
    Log.v(LOG_TAG, "Cannot schedule Calendar event as specified "); 

    return false; 
} 

ответ

0

Вы проверили пример с http://developer.android.com/guide/topics/providers/calendar-provider.html#reminders?

long eventID = 221; 
... 
ContentResolver cr = getContentResolver(); 
ContentValues values = new ContentValues(); 
values.put(Reminders.MINUTES, 15); 
values.put(Reminders.EVENT_ID, eventID); 
values.put(Reminders.METHOD, Reminders.METHOD_ALERT); 
Uri uri = cr.insert(Reminders.CONTENT_URI, values); 
+1

В этом примере используется другой подход, когда приложение непосредственно записывает данные в календарь. OP использует другой подход, когда его приложение открывает приложение календаря с предварительно заполненными данными, которые могут быть использованы для создания события календаря. – Singed