【发布时间】:2016-05-26 20:55:16
【问题描述】:
我希望我的应用程序将全天事件插入日历。我从https://developer.android.com/guide/topics/providers/calendar-provider.html 给出的示例开始。为了让它全天运行,我添加了 ALL_DAY 内容值并将时区设置为 UTC。我最终得到以下代码:
long calID = 3;
long startMillis = 0;
long endMillis = 0;
Calendar beginTime = Calendar.getInstance();
beginTime.set(2012, 9, 14, 7, 30);
startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(2012, 9, 14, 8, 45);
endMillis = endTime.getTimeInMillis();
ContentResolver cr = getContentResolver();
values.put(Events.ALL_DAY, 1)
ContentValues values = new ContentValues();
values.put(Events.DTSTART, startMillis);
values.put(Events.DTEND, endMillis);
values.put(Events.TITLE, "Jazzercise");
values.put(Events.DESCRIPTION, "Group workout");
values.put(Events.CALENDAR_ID, calID);
values.put(Events.EVENT_TIMEZONE, "UTC");
Uri uri = cr.insert(Events.CONTENT_URI, values);
现在,这实际上完成了工作,但DTEND 时间似乎是多余的,并且在实际上只需要日期时设置开始和结束时间毫无意义。当我删除DTEND 值时,我得到一个异常java.lang.IllegalArgumentException: DTEND and DURATION cannot both be null for an event.。什么是正确的价值观?只是像上面那样随意,还是可以/应该用有意义的信息来完成?
【问题讨论】:
标签: java android android-contentprovider android-calendar