我使用以下代码从我的Android应用程序中添加和事件到用户默认日历:
private void insertCalendarEvent() {
try {
Intent calIntent = new Intent(Intent.ACTION_INSERT)
.setData(Events.CONTENT_URI)
.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, false)
.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, model.getCurrentActivityEvent().getStartDATE().getTimeInMillis())
.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, model.getCurrentActivityEvent().getEndDATE().getTimeInMillis())
.putExtra(Events.DESCRIPTION, model.getCurrentActivityEvent().getNotebook())
.putExtra(Events.EVENT_LOCATION, model.getCurrentActivityEvent().getExtra1())
.putExtra(CalendarContract.Events.CALENDAR_TIME_ZONE, Calendar.getInstance().getTimeZone())
.putExtra(Events.AVAILABILITY, Events.AVAILABILITY_BUSY);
if(model.getCurrentActivityEvent().getName() == null) {
calIntent.putExtra(Events.TITLE, model.getCurrentActivityEvent().getActivityTypeCODE().GetDescription());
}else {
calIntent.putExtra(Events.TITLE, model.getCurrentActivityEvent().getActivityTypeCODE().GetDescription() + "-" + model.getCurrentActivityEvent().getName());
}
calIntent = getCompanyEmail(calIntent);
startActivity(calIntent);
}
catch(Exception e) {
// log exception
e.printStackTrace();
Log.e(TAG, e.getMessage());
}
当电子邮件帐户是exchange,google mail或pop3帐户并且用户已将该帐户配置为设备上的默认日历时,此工作正常。基本上,用户会看到事件活动,如果需要,可以进行更改,然后保存或取消活动。
但是我的客户正在使用Lotus Notes旅行者在他们的Android设备上处理他们的电子邮件和日历。此代码不会将事件放入Lotus Notes日历,而是将其放入电话默认日历中,即使它未使用帐户设置。
如何配置手机设置或应用程序代码以将事件插入用户Lotus Notes日历?