我正在尝试将交换日历与我的自定义日历集成。直到现在我能够将我的日历中的新会议集成到Exchange。
但我面临的问题是从Exchange到我的日历。如果我在Outlook中创建一个新会议,并且如果我通过下面的代码搜索它,我将获得结果。
<code>
CalendarFolder calendarFolder = CalendarFolder.bind(eService, WellKnownFolderName.Calendar);
CalendarView calendarView = new CalendarView(startOfMonth.toDate(), endOfMonth.toDate());
FindItemsResults<Appointment> aprilMeetings = alendarFolder.findAppointments(calendarView);
</code>
在上面的列表中我得到了开始和结束日期之间的所有会议。我的问题是如何确定是新会议还是更新会议还是取消会议。
我试过这些方法,
<code>
appointment.getIsNew().
appointment.getIsCancelled()
appointment.getIsUnmodified()
</code>
但以上所有方法都返回false。我需要找到一种方法来弄清楚这一点,以便我可以将我的Exchange Server中的项目同步到我的自定义应用程序(注意:我也在我的应用程序中创建iCal文件,所以我可以在没有连接交换时使用我的应用程序)。
问候。
答案 0 :(得分:2)
您可以使用以下代码来获取更新/新会议。
Date startDate1 = formatter.parse("2014-04-25 07:00:00");
SearchFilter filter = new SearchFilter.IsGreaterThanOrEqualTo(ItemSchema.LastModifiedTime,startDate1);
FindItemsResults<Item> findResults = exchange.findItems(WellKnownFolderName.Calendar, filter, new ItemView(10));
for (Item item : findResults.getItems())
{
Appointment appt = (Appointment)item;
System.out.println("SUBJECT====="+appt.getSubject());
System.out.println("Location========"+appt.getLocation());
System.out.println("Start Time========"+appt.getStart());
System.out.println("End Time========"+appt.getEnd());
System.out.println("Email Address========"+ appt.getOrganizer().getAddress());
System.out.println("Last Modified Time========"+appt.getLastModifiedTime());
}