【问题标题】:Android : Set reminder functionalityAndroid : 设置提醒功能
【发布时间】:2014-02-15 08:31:05
【问题描述】:

我正在开发一个具有提醒功能的应用程序。我使用的代码如下设置提醒和事件:

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

以上代码运行正常。 现在应用需求是:

  1. 如何获取提醒 ID。
  2. 如何从上述代码以编程方式设置的日历中删除提醒。
  3. 如何以编程方式编辑现有提醒。
  4. 如何制作提醒,隐藏在日历中,只有闹钟响起时才可见。

请根据您的建议指导我。

【问题讨论】:

    标签: android android-alarms android-calendar android-event reminders


    【解决方案1】:

    A.如何获取提醒 ID。

    您可以将提醒 ID 设为:

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

    B.如何从上述代码以编程方式设置的日历中删除提醒。

    您可以通过调用以下代码从日历中删除提醒:

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

    C.如何以编程方式编辑现有提醒。

    您可以通过以下代码在相同的事件 ID 和提醒上设置新的更新字段来更新提醒:

    更新事件

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

    更新提醒

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-05
      • 2012-04-20
      • 2020-05-07
      相关资源
      最近更新 更多