我使用ICS日历API:s来执行此同步,它适用于Google日历.如果用户选择与交换帐户同步,则状态项会显示为具有暂定状态的会议请求.
由于我对日历的经验有限,我的问题是日历事件应该与哪些字段一起使其显示为常规事件以及Google日历.我直接插入事件,而不使用意图,因为目标是让用户无缝.当前代码如下所示(状态是我的状态数据模型).
ContentResolver cr = getContentResolver();ContentValues values = new ContentValues();values.put(CalendarContract.Events.DTSTART,status.StartTimeLocal.getTime());values.put(CalendarContract.Events.DTEND,status.StopTimeLocal.getTime());values.put(CalendarContract.Events.Title,status.displayname);values.put(CalendarContract.Events.DESCRIPTION,status.Text);values.put(CalendarContract.Events.AVAILABIliTY,CalendarContract.Events.AVAILABIliTY_BUSY);values.put(CalendarContract.Events.STATUS,CalendarContract.Events.STATUS_CONFIRMED);values.put(CalendarContract.Events.GUESTS_CAN_INVITE_OTHERS,false);values.put(CalendarContract.Events.HAS_ATTENDEE_DATA,false);values.put(CalendarContract.Events.CALENDAR_ID,mCalendarID);values.put(CalendarContract.Events.EVENT_TIMEZONE,"Europe/Stockholm");Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI,values);
当我尝试在手机日历中手动添加新项目时,它与交换正确同步,因此似乎可能.但是从我的应用程序中我很难让它运行起来.
解决方法 在ContentValues中指定Calendars.OWNER_ACCOUNT应该可以解决问题.ContentValues values = new ContentValues();...values.put(Calendars.OWNER_ACCOUNT,ACCOUNT_name);
在插入之前,您的CONTENT_URI需要包含ACCOUNT_name和ACCOUNT_TYPE
Uri contentUri CalendarContract.Calendars.CONTENT_URI .buildUpon() .appendqueryParameter(Calendars.ACCOUNT_name,ACCOUNT_name) .appendqueryParameter(Calendars.ACCOUNT_TYPE,"com.Google") .build();
现在插入:
Uri uri = cr.insert(contentUri,values);总结
以上是内存溢出为你收集整理的如何添加未成为暂定会议的Android日历活动?全部内容,希望文章能够帮你解决如何添加未成为暂定会议的Android日历活动?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)