是否可以使用 意向打開創建提醒? 我找不到任何解決方案。Android提醒意向
Intent intent = new Intent(Intent.ACTION_INSERT)
.setData(CalendarContract.Events.CONTENT_URI);
startActivity(intent);
我要調用此:
是否可以使用 意向打開創建提醒? 我找不到任何解決方案。Android提醒意向
Intent intent = new Intent(Intent.ACTION_INSERT)
.setData(CalendarContract.Events.CONTENT_URI);
startActivity(intent);
我要調用此:
您可以實現像這樣。所有你需要做的就是調用這個方法,其餘部分將會處理。
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);
}
但在此之前,請確保您擁有這些權限。
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
如果您使用的是Android API 23(6.0)以上,我建議你閱讀有關API 23 here新的權限模型。並確保在運行時請求,這將有助於您的應用程序支持未來版本的Android。
UPDATE
你應該試試這個由Sanjeev Kumar in here的建議
/** 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();
}
可能重複:http://stackoverflow.com/questions/8664670/how-to-launch-alarm-clock- screen-using-intent-in-android – Nathanael
我認爲他的意思更像是一個日曆條目。 –
@Nathanael我不想發出警報,這就是我發佈圖片的原因。如果你打開谷歌日曆,你可以添加事件,提醒和最新的功能是目標。我想調用新的提醒。也許這是不可能的,但我想確保我沒有錯過任何文檔。 – Martin