从原来的周期性事件使异常事件? [英] Make exception event from original recurring event?
问题描述
我发现, Events.CONTENT_EXCEPTION_URI
(<一href="http://developer.android.com/reference/android/provider/CalendarContract.Events.html#CONTENT_EXCEPTION_URI"用于补充经常性事件相对=nofollow>这里)。
这是很难找到从互联网上的文件或code例子。所以我尝试了很多方法
I found that Events.CONTENT_EXCEPTION_URI
(here) used for make recurring event.
It's hardly to find document or code example from internet. So I try many ways
ContentValues values = new ContentValues();
values.put(Events.ORIGINAL_INSTANCE_TIME, CaldavGlobalVar.getCurrentTime_());
values.put(Events.SELF_ATTENDEE_STATUS, status);
if(!username.equals("")){
values.put(Events.ORGANIZER, username);
}
if(event.getSummarry()!=null){
values.put(Events.TITLE, event.getSummarry());
}
if(event.getDescription()!=null){
values.put(Events.DESCRIPTION, event.getDescription());
}
if(event.getDateStart()!=null){
values.put(Events.DTSTART, CaldavGlobalVar.convertTIMEtomilisecond(event.getDateStart(), event.getAllDay()));
}
Uri exceptionUri = Uri. withAppendedPath(Events.CONTENT_EXCEPTION_URI, String.valueOf(event.getEventId()));
Uri syncUri = CalendarProvider.asSyncAdapter(exceptionUri, username,context.getResources().getString(R.string.ACCOUNT_TYPE));
Uri resultUri = context.getContentResolver().insert(syncUri, values);
resultUri 返回null,我因此未看到任何异常或任何相关的东西,所以我掏Android源$ C $ C(从<一个href="https://android.googlesource.com/platform/packages/apps/Calendar/+/320c1b11a8238ef299a401655d1ae06ffad45a47/src/com/android/calendar/EventInfoFragment.java"相对=nofollow>这里),并发现他们使用的方法 Events.CONTENT_EXCEPTION_URI
所以我改变
resultUri return null, I didnot see any exception or any relation things, So I dig Android source code (from here) and find out the way they use Events.CONTENT_EXCEPTION_URI
So I change
ContentValues values = new ContentValues();
values.put(Events.ORIGINAL_INSTANCE_TIME, CaldavGlobalVar.getCurrentTime_());
values.put(Events.SELF_ATTENDEE_STATUS, 1);
values.put(Events.STATUS, Events.STATUS_CONFIRMED);
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
Uri exceptionUri = Uri.withAppendedPath(Events.CONTENT_EXCEPTION_URI,
String.valueOf(eventId));
ops.add(ContentProviderOperation.newInsert(exceptionUri).withValues(values).build());
mHandler.startBatch(mHandler.getNextToken(), null, CalendarContract.AUTHORITY, ops, 1000);
但它显示的日志,它安装失败,我很担心,可能是谷歌不完全支持它,我也列出所有的内容提供商在Android中,我不具有任何异常的URI(活动.CONTENT_EXCEPTION_URI
) - 内容://com.android.calendar/exception
例外扔
java.lang.IllegalArgumentException: Unknown URL content://com.android.calendar/exception
有没有人有经验吗?任何帮助是AP preciate:)
Does anyone have experience ? Any help are appreciate :)
亲切的问候
推荐答案
我的code一小部分:
A small part of my code:
ContentValues args = new ContentValues();
args.put(CalendarContract.Events.ORIGINAL_INSTANCE_TIME, originalinstancetime);
args.put(CalendarContract.Events.STATUS, status);
Uri.Builder eventUriBuilder = CalendarContract.Events.CONTENT_EXCEPTION_URI.buildUpon();
ContentUris.appendId(eventUriBuilder, originalEventID);
try {
final Uri resultUri = context.getContentResolver().insert(eventUriBuilder.build(), args);
int eventID = Integer.parseInt(resultUri.getLastPathSegment());
} catch (Exception e) {
}
这篇关于从原来的周期性事件使异常事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!