简体   繁体   中英

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.
  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.

You can get your reminder ID as :

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

B. How to delete reminder from my calender programmetically set by the above code.

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.

You can update reminder by setting new updated fields on same event id and reminder in by following code :

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);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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