添加的事件未显示在android中的日历应用中

时间:2016-02-26 15:53:40

标签: android calendar

我正在使用日历提供程序在google日历中插入事件。问题是我将查询结果作为Uri而没有任何异常和事件ID。但我正在添加的事件没有在日历app中显示。任何人都可以帮助我。我还想为我的活动设置提醒。下面是我用来添加事件的代码。

     public void addNewEvent() {
     long startMillis = 0;
     long endMillis = 0;
     Calendar beginTime = Calendar.getInstance();
     beginTime.set(2016, 4, 1, 7, 30);
     Log.e("startTime",new SimpleDateFormat("MM:dd:yyyy").format(beginTime.getTimeInMillis()));
     startMillis = beginTime.getTimeInMillis();
     Calendar endTime = Calendar.getInstance();
     endTime.set(2016, 4, 1, 8, 56);
     endMillis = endTime.getTimeInMillis();
     // Insert Event
     Log.e("endTime",new SimpleDateFormat("MM:dd:yyyy").format(endTime.getTimeInMillis()));
     ContentResolver cr = activity.getContentResolver();
     ContentValues values = new ContentValues();
     TimeZone timeZone = TimeZone.getDefault();
     values.put(CalendarContract.Events.DTSTART, startMillis);
     values.put(CalendarContract.Events.DTEND, endMillis);
     values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());
     values.put(CalendarContract.Events.TITLE, "Going for a ride");
     values.put(CalendarContract.Events.DESCRIPTION, "Event desc");
     values.put(CalendarContract.Events.CALENDAR_ID, 39);
     values.put(CalendarContract.Events.EVENT_LOCATION,"Malta");
     Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);
     // Retrieve ID for new event
     long eventID = Long.parseLong(uri.getLastPathSegment());
     setReminder(cr, eventID, 100);
     Log.e("eventId",eventID+"");
}

 public void setReminder(ContentResolver cr, long eventID, int timeBefore) {
        try {
            ContentValues values = new ContentValues();
            values.put(CalendarContract.Reminders.MINUTES, timeBefore);
            values.put(CalendarContract.Reminders.EVENT_ID, eventID);
            values.put(CalendarContract.Reminders.METHOD, CalendarContract.Reminders.METHOD_ALERT);
            Uri uri = cr.insert(CalendarContract.Reminders.CONTENT_URI, values);
            Cursor c = CalendarContract.Reminders.query(cr, eventID,
                    new String[]{CalendarContract.Reminders.MINUTES});
            if (c.moveToFirst()) {
                Log.e("Reminder Uri",uri.toString());
                Log.e("","calendar"
                        + c.getInt(c.getColumnIndex(CalendarContract.Reminders.MINUTES)));
            }
            c.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

1 个答案:

答案 0 :(得分:0)

上面的代码有助于将事件添加到手机日历中。如果要将事件添加到Google日历,则必须使用google calendar api。将事件添加到电话日历时,我已将日历ID设置为“1”。