简体   繁体   English

Android:设置提醒功能

[英]Android : Set reminder functionality

I am developing an application with reminder functionality. 我正在开发具有提醒功能的应用程序。 The code i used is as follows to set the reminder and event: 我使用的代码如下来设置提醒和事件:

private void addReminder(int statrYear, int startMonth, int startDay, int startHour, int startMinut, String title){
    // Convert start of begin time of reminder in milliseconds.
    Calendar beginTime = Calendar.getInstance();
    beginTime.set(statrYear, startMonth, startDay, startHour, startMinut);
    long startMillis = beginTime.getTimeInMillis();

    // String to access default google calendar of device for Event setting.
    String eventUriString = "content://com.android.calendar/events";

    // Creation of Event.
    ContentValues eventValues = new ContentValues();
    // Set calendar as 1 for default calendar.
    eventValues.put(Events.CALENDAR_ID, 1);
    // Set title as user define.
    eventValues.put(Events.TITLE, title);
    // Set description as user define.
    eventValues.put(Events.DESCRIPTION, "MYApp");
    // Set location as user define.
    eventValues.put(Events.EVENT_TIMEZONE, "India");
    // Set start time as system time or time converted in milliseconds.
    eventValues.put(Events.DTSTART, startMillis);
    // Set status of event as 1.
    eventValues.put("eventStatus", 1);
    // Set visibility of event as 3 (public).
    eventValues.put("visibility", 3);
    // Set transparency as 0. No other app seen through reminder.
    eventValues.put("transparency", 0);
    // Set alarm as 1. Ringing.
    eventValues.put(Events.HAS_ALARM, 1);

    // Set Event in calendar.
    Uri eventUri = getContentResolver().insert(Uri.parse(eventUriString), eventValues);
    // Getting ID of event in Long.
    long eventID = Long.parseLong(eventUri.getLastPathSegment());

    /***************** Event: Reminder(with alert) Adding reminder to event *******************/
    // String to access default google calendar of device for reminder setting.
    String reminderUriString = "content://com.android.calendar/reminders";      
    ContentValues reminderValues = new ContentValues();

    // Set reminder on Event ID.
    reminderValues.put("event_id", eventID);
    // Set reminder minute before.
    reminderValues.put("minutes", 1);
    // Set method of reminder
    reminderValues.put("method", 1);        

    @SuppressWarnings("unused")
    //Setting reminder in calendar on Event.
    Uri reminderUri = getContentResolver().insert(Uri.parse(reminderUriString), reminderValues);
}

The above code is running ok. 上面的代码运行正常。 Now the need of application is : 现在需要的应用程序是:

  1. How to get reminder id. 如何获取提醒ID。
  2. How to delete reminder from my calender programmatically set by the above code. 如何从上面的代码以编程方式设置的日历中删除提醒。
  3. How to edit existing reminder programmatically. 如何以编程方式编辑现有提醒。
  4. How to make reminder, hidden in calender and it goes visible only the time of alarm. 如何进行提醒,隐藏在日历中,仅在警报时间可见。

Please guide me with your suggestions. 请指导我的建议。

A. How to get reminder id. A.如何获取提醒ID。

You can get your reminder ID as : 您可以通过以下方式获取提醒ID:

Long reminderID = Long.parseLong(reminderUri.getLastPathSegment());

B. How to delete reminder from my calender programmetically set by the above code. B.如何从以上代码以编程方式设置的日历中删除提醒。

You can delete reminder from the calender by calling the following code : 您可以通过调用以下代码从日历中删除提醒:

Uri reminderUri = Uri.parse("content://com.android.calendar/reminders");
reminderUri = Uri.withAppendedPath(reminderUri, String.valueOf(reminderID));
context.getContentResolver().delete(reminderUri, null, null);

C. How to edit existing reminder programmetically. C.如何以编程方式编辑现有提醒。

You can update reminder by setting new updated fields on same event id and reminder in by following code : 您可以通过在同一事件ID上设置新的更新字段来更新提醒,并通过以下代码添加提醒:

Update Event 更新事件

Uri updateEventUri = Uri.withAppendedPath(Uri.parse("content://com.android.calendar/events"), String.valueOf(eventID));
context.getContentResolver().update(updateEventUri, eventValues, null, null);

Update Reminder 更新提醒

Uri updateReminderUri = Uri.withAppendedPath(Uri.parse("content://com.android.calendar/reminders"), String.valueOf(Utility.eventID));
context.getContentResolver().update(updateReminderUri, reminderValues, null, null);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM