我需要通过Android应用在谷歌日历中设置闹钟。我已经成功输入了日历中的数据,即使它已经设置了警报,但是当我查看日历条目的详细信息时,它会自动删除警报设置。
请注意,下面是代码段。
private Uri MakeNewCalendarEntry(int calId, String title, String desc,
String location, String matchDate) {
ContentValues event = new ContentValues();
String value = matchDate;
String[] splitedTimeDate = value.split("T");
String dateValue = splitedTimeDate[0];
String[] timeValue = splitedTimeDate[1].split("-");
matchDate = dateValue + " " + timeValue[0];
event.put("calendar_id", calId);
event.put("title", title);
event.put("description", desc);
event.put("eventLocation", location);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
java.util.Date d = null;
try {
d = formatter.parse(matchDate);// catch exception
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// This is the UTC Event Start Date
Calendar calUTCEventDate = Calendar.getInstance();
calUTCEventDate.setTime(d); // rest is the same....
// This is the current UTC Date
Calendar calCurrentUTCDate = Calendar.getInstance();
TimeZone z = calCurrentUTCDate.getTimeZone();
int offset = z.getRawOffset();
int offsetHrs = offset / 1000 / 60 / 60;
int offsetMins = offset / 1000 / 60 % 60;
calCurrentUTCDate.add(Calendar.HOUR_OF_DAY, (-offsetHrs));
calCurrentUTCDate.add(Calendar.MINUTE, (-offsetMins));
// This is the current Device Date
Calendar calCurrentDeviceDate = Calendar.getInstance();
long diff = calUTCEventDate.getTimeInMillis()
- calCurrentUTCDate.getTimeInMillis();
long minutes = Math.abs(diff) / (1000 * 60);
long hours = minutes / 60;
long startTime = System.currentTimeMillis() + 1000 * 60 * 60 * hours;
long endTime = System.currentTimeMillis() + 1000 * 60 * 60
* (hours + 8);
event.put("dtstart", startTime);
event.put("dtend", endTime);
event.put("allDay", 0); // 0 for false, 1 for true
event.put("eventStatus", 1);
event.put("visibility", 1);
event.put("transparency", 0);
event.put("hasAlarm", 1); // 0 for false, 1 for true
Uri eventsUri = Uri.parse(getCalendarUriBase() + "events");
Uri insertedUri = getContentResolver().insert(eventsUri, event);
return insertedUri;
}
答案 0 :(得分:3)
以下片段帮我解决了问题......
Blockquote //上面的代码片段返回我的事件ID
Uri newEvent = MakeNewCalendarEntry(iTestCalendarID, title,
desc, location, matchDate);
int eventID = Integer.parseInt(newEvent.getLastPathSegment());
块引用
final ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();
values.put("event_id", eventID);
values.put("method", 1);
values.put("minutes", 5);
cr.insert(Uri.parse("content://com.android.calendar/reminders"), values); // for android 2.2+
// OR
cr.insert(Uri.parse("content://calendar/reminders"), values); // for android 2.1 n earlier
感谢
-y
答案 1 :(得分:-2)
我使用GCalendar Widget查看,创建,编辑和删除Google日历活动。