从原来的周期性事件使异常事件? [英] Make exception event from original recurring event?

查看:367
本文介绍了从原来的周期性事件使异常事件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我发现, 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆