Sie es so umsetzen können. Alles, was Sie tun müssen, ist, rufen Sie diese Methode, und es wird sich um den Rest kümmern.
public static void pushAppointmentsToCalender(Activity curActivity,
String title, long startDate) {
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("beginTime", startDate);
intent.putExtra("allDay", true);
intent.putExtra("endTime", startTime+24*60*60*1000);
intent.putExtra(CalendarContract.Events.TITLE, title);
curActivity.startActivity(intent);
}
Aber vorher, stellen Sie sicher, dass Sie diese Berechtigungen manifestiert haben.
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
Wenn Sie 23 Android-API verwenden (6.0) oder höher, empfehle ich Ihnen über das neue Berechtigungsmodell in API 23 here zu lesen. Und stellen Sie sicher, dass Sie in der Laufzeit anfordern, was gut für Ihre App ist, zukünftige Versionen von Android zu unterstützen.
UPDATE
Sie sollten versuchen, diese wie von Sanjeev Kumar in here vorgeschlagen
/** Adds Events and Reminders in Calendar. */
private void addReminderInCalendar() {
Calendar cal = Calendar.getInstance();
Uri EVENTS_URI = Uri.parse(getCalendarUriBase(true) + "events");
ContentResolver cr = getContentResolver();
TimeZone timeZone = TimeZone.getDefault();
/** Inserting an event in calendar. */
ContentValues values = new ContentValues();
values.put(CalendarContract.Events.CALENDAR_ID, 1);
values.put(CalendarContract.Events.TITLE, "Sanjeev Reminder 01");
values.put(CalendarContract.Events.DESCRIPTION, "A test Reminder.");
values.put(CalendarContract.Events.ALL_DAY, 0);
// event starts at 11 minutes from now
values.put(CalendarContract.Events.DTSTART, cal.getTimeInMillis() + 1 * 60 * 1000);
// ends 60 minutes from now
values.put(CalendarContract.Events.DTEND, cal.getTimeInMillis() + 2 * 60 * 1000);
values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());
values.put(CalendarContract.Events.HAS_ALARM, 1);
Uri event = cr.insert(EVENTS_URI, values);
// Display event id.
Toast.makeText(getApplicationContext(), "Event added :: ID :: " + event.getLastPathSegment(), Toast.LENGTH_SHORT).show();
/** Adding reminder for event added. */
Uri REMINDERS_URI = Uri.parse(getCalendarUriBase(true) + "reminders");
values = new ContentValues();
values.put(CalendarContract.Reminders.EVENT_ID, Long.parseLong(event.getLastPathSegment()));
values.put(CalendarContract.Reminders.METHOD, Reminders.METHOD_ALERT);
values.put(CalendarContract.Reminders.MINUTES, 10);
cr.insert(REMINDERS_URI, values);
}
/** Returns Calendar Base URI, supports both new and old OS. */
private String getCalendarUriBase(boolean eventUri) {
Uri calendarURI = null;
try {
if (android.os.Build.VERSION.SDK_INT <= 7) {
calendarURI = (eventUri) ? Uri.parse("content://calendar/") :
Uri.parse("content://calendar/calendars");
} else {
calendarURI = (eventUri) ? Uri.parse("content://com.android.calendar/") : Uri
.parse("content://com.android.calendar/calendars");
}
} catch (Exception e) {
e.printStackTrace();
}
return calendarURI.toString();
}
Mögliche doppelte: http://stackoverflow.com/questions/8664670/how-to-launch-alarm-clock- screen-using-intention-in-android – Nathanael
Ich denke, er meint mehr wie ein Kalendereintrag. –
@Nathanael Ich möchte keinen Alarm machen, deshalb habe ich ein Bild gepostet. Wenn Sie den Google-Kalender öffnen, können Sie ein Ereignis, eine Erinnerung und die neueste Funktion als Ziel hinzufügen. Ich möchte eine neue Erinnerung aufrufen. Wahrscheinlich ist es nicht möglich, aber ich wollte sicher sein, dass ich in der Dokumentation nichts vermisse. – Martin