2014-02-12 4 views
7

Ich muss die Kalenderanwendung von Android-Gerät mit einigen vorbelegten Daten öffnen. Die Logik, die Iam scheint über Felder zu füllen wie:Wie programmiere ich den Abschnitt "Erinnerungen" in der Kalender App des Android-Geräts?

  1. Eventbeschreibung
  2. Veranstaltungsort
  3. Von Datum,
  4. Ganztägig, um Datum/nicht
  5. Repeat/Recurrence Info

Ich kann den Abschnitt "Erinnerungen" nicht füllen, ich möchte den Abschnitt "Erinnerungen" ausfüllen. Es ist großartig, Hilfe zu diesem Thema zu bekommen

Hier ist der Code, den ich verwende, um Kalender App zu öffnen und Datum zu füllen.

// 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; 
} 

Antwort

0

Haben Sie das Beispiel von http://developer.android.com/guide/topics/providers/calendar-provider.html#reminders überprüft?

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

In diesem Beispiel wird ein anderer Ansatz verwendet, bei dem Ihre App Daten direkt in den Kalender schreibt. Das OP verwendet einen anderen Ansatz, bei dem seine App die Kalender-App mit vorbereiteten Daten öffnet, mit denen Kalenderereignisse erstellt werden können. – Singed

Verwandte Themen