gpt4 book ai didi

android - 谷歌日历条目警报不工作 Android

转载 作者:行者123 更新时间:2023-11-30 04:47:09 24 4
gpt4 key购买 nike

我需要通过 Android 应用程序在谷歌日历中设置闹钟。我已成功在日历中输入数据,即使它显示闹钟也已设置,但当我查看日历条目的详细信息时,它会自动删除闹钟设置。

请指教,下面是代码 fragment 。

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

最佳答案

下面的代码 fragment 帮助我解决了问题......

Blockquote // Above code snippet return me event Id

            Uri newEvent = MakeNewCalendarEntry(iTestCalendarID, title,
desc, location, matchDate);
int eventID = Integer.parseInt(newEvent.getLastPathSegment());

Blockquote

            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

关于android - 谷歌日历条目警报不工作 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4592846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com