Java Android提醒意图
是否可以使用类似的意图打开创建提醒 事件? 我找不到任何解决办法Java Android提醒意图,java,android,android-intent,reminders,Java,Android,Android Intent,Reminders,是否可以使用类似的意图打开创建提醒 事件? 我找不到任何解决办法 Intent intent = new Intent(Intent.ACTION_INSERT) .setData(CalendarContract.Events.CONTENT_URI); startActivity(intent); 我想引用这个: 您可以这样实现它。你所需要做的就是调用这个方法,它会处理剩下的事情 public static void pushAppointmentsToCalender(A
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中的新权限模型。并确保在运行时请求,这将有助于您的应用程序支持未来版本的android
更新
你应该按照医生的建议试试这个
/**在日历中添加事件和提醒*/
私有void addalendar(){
Calendar cal=Calendar.getInstance();
urievents_Uri=Uri.parse(getCalendarUriBase(true)+“事件”);
ContentResolver cr=getContentResolver();
时区TimeZone=TimeZone.getDefault();
/**在日历中插入事件*/
ContentValues=新的ContentValues();
value.put(CalendarContract.Events.CALENDAR\u ID,1);
values.put(CalendarContract.Events.TITLE,“Sanjeev提醒01”);
value.put(CalendarContract.Events.DESCRIPTION,“测试提醒”);
value.put(CalendarContract.Events.ALL_DAY,0);
//活动从现在起11分钟开始
value.put(CalendarContract.Events.DTSTART,cal.getTimeInMillis()+1*60*1000);
//60分钟后结束
value.put(CalendarContract.Events.DTEND,cal.getTimeInMillis()+2*60*1000);
value.put(CalendarContract.Events.EVENT_TIMEZONE,TIMEZONE.getID());
value.put(CalendarContract.Events.HAS_报警,1);
Uri事件=cr.insert(事件\ Uri,值);
//显示事件id。
Toast.makeText(getApplicationContext(),“添加的事件::ID::”+Event.getLastPathSegment(),Toast.LENGTH_SHORT).show();
/**为已添加的事件添加提醒*/
Uri提醒_Uri=Uri.parse(getCalendarUriBase(true)+“提醒”);
values=新的ContentValues();
values.put(CalendarContract.members.EVENT_ID,Long.parseLong(EVENT.getLastPathSegment());
values.put(CalendarContract.members.METHOD,members.METHOD\u ALERT);
值。放置(CalendarContract.Members.MINUTES,10);
cr.insert(提醒、URI、值);
}
/**返回日历基URI,支持新操作系统和旧操作系统*/
私有字符串getCalendarUriBase(布尔eventUri){
Uri calendarURI=null;
试一试{
如果(android.os.Build.VERSION.SDK_INT可能重复:我想他的意思更像是一个日历条目。@Nathanel我不想发出警报,这就是我发布图像的原因。如果你打开谷歌日历,你可以添加事件、提醒,最新功能是目标。我想调用新提醒。可能不可能,但我想确定我没有Don’不要错过文档中的任何内容。您找到使用intent为提醒添加或设置默认分钟数的解决方案了吗?哦,Reminders,将根据需要进行更改我很感激,您正在尝试提供帮助,但为该事件创建事件和提醒并没有问题,我想调用提醒,就像您现在使用Google时一样,或者您只是在Google中添加提醒日历。也许这是不可能的,至少现在是这样。
/** 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();
}