2011-05-01 144 views
2

我正在开发一个Android应用,该应用使用GData API for Google Calendar in Java连接到Google日历。到目前为止,我已经设法创建活动,但我只能设置标题,描述和时间。Google日历API:新活动属性

有没有人知道我可以在哪里找到一个参考或带有可设置为事件的所有参数的示例?

我给你留下了一些我迄今为止取得的成果的代码。

CalendarService calendarService = new CalendarService("CalendarAPP"); 
calendarService.setUserCredentials(<username>, <password>); 
URL postUrl = new URL("https://www.google.com/calendar/feeds/<GMAIL ACCOUNT>/private/full"); 
CalendarEventEntry myEntry = new CalendarEventEntry(); 

myEntry.setTitle(new PlainTextConstruct("Tennis with Beth")); 
myEntry.setContent(new PlainTextConstruct("Meet for a quick lesson.")); 

DateTime startTime = DateTime.now(); 
DateTime endTime = DateTime.now(); 
When eventTimes = new When(); 
eventTimes.setStartTime(startTime); 
eventTimes.setEndTime(endTime); 
myEntry.addTime(eventTimes); 

CalendarEventEntry insertedEntry = connection.getCalendarService().insert(postUrl, myEntry); 

在此先感谢。

Mikywan。

回答

1

谷歌日历的GData是非常好的。对于您可能想要设置或获取的每个属性,都会定义一个Getter和Setter。您只需在适合您要访问的数据的事件条目上查找setter/getter。

我留下了一个如何在控制台上显示几乎所有你想要的数据的例子。

享受!

private static void showCalendarEventEntry(CalendarEventEntry entry) { 
    assert entry != null; 
    System.out.println("-------------------------------------------"); 
    System.out.println("START showCalendarEventEntry"); 
    System.out.println(""); 
    System.out.println("ID: " + entry.getId()); 
    System.out.println("TITLE: "+entry.getTitle().getPlainText()); 
    System.out.println("DESCRIPTION: "+entry.getPlainTextContent()); 
    System.out.println("LOCATION: "+entry.getLocations().get(0).getValueString()); 

    System.out.println(""); 
    System.out.println("TIMES"); 
    if (entry.getTimes().size() > 0) { 
     When eventTimes = entry.getTimes().get(0); 
     if (eventTimes.getStartTime().isDateOnly()) { 
      System.out.println("\tWHEN: ALL DAY"); 
     } else { 
      System.out.println("\tWHEN: TIME"); 
     } 

     if (entry.getRecurrence() != null) 
      System.out.println("\tRECURRENCE: "+entry.getRecurrence().toString()); 

     System.out.println("\tSTART TIME: "+eventTimes.getStartTime()); 
     System.out.println("\tEND TIME: "+eventTimes.getEndTime()); 
    } 

    System.out.println(""); 
    System.out.println("PARTICIPANTS"); 
    System.out.println("\t"+(entry.getParticipants().size()) + " PARTICIPANTS"); 
    if (entry.getParticipants().size() > 0){ 

     for (int i=0; i<entry.getParticipants().size(); i++) { 
      EventWho participant = entry.getParticipants().get(i); 
      System.out.println("\t\tPARTICIPANT "+participant.getValueString()); 
      System.out.println("\t\t\tTYPE: "+participant.getAttendeeType()); 
      System.out.println("\t\t\tSTATUS: "+participant.getAttendeeStatus()); 
     } 
     if (entry.isGuestsCanInviteOthers()) 
      System.out.println("\tGUESTS CAN INVITE OTHERS: "); 
     if (entry.isGuestsCanModify()) 
      System.out.println("\tGUESTS CAN MODIFY"); 
     if (entry.isGuestsCanSeeGuests()) 
      System.out.println("\tGUESTS CAN SEE GUESTS"); 
    } 

    //REMINDERS 
    System.out.println(""); 
    System.out.println("REMINDERS"); 
    System.out.println("\t"+entry.getReminder().size()+" REMINDERS"); 
    if (entry.getReminder().size() > 0) { 
     for (int i=0; i<entry.getReminder().size(); i++) { 
      Reminder reminder = entry.getReminder().get(i); 
      System.out.println("\t\tREMINDER "+i); 
      System.out.println("\t\t\tMETHOD: "+reminder.getMethod().toString()); 
      System.out.println("\t\t\tDAYS: "+reminder.getDays()); 
      System.out.println("\t\t\tHOURS: "+reminder.getHours()); 
      System.out.println("\t\t\tMINUTES: "+reminder.getMinutes());     
     } 
    } 

    //VISIBILITY 
    System.out.println(""); 
    System.out.println("VISIBILITY: "+entry.getVisibility().getValue()); 

    System.out.println(""); 
    System.out.println("END showCalendarEventEntry"); 
    System.out.println("-------------------------------------------"); 
}