如何使用 Android 在 Google 日历 API 中创建活动

How to create Events in Google Calendar API with Android

我正在尝试使用 Android 在我的 Google 日历中插入一些事件。要阅读日历,Google 开发者页面上有一个 Android 的快速入门教程,它运行良好。但是没有Android插入事件的代码示例,我只是找到了一个Java代码示例:

    Event event = new Event()
            .setSummary("Google I/O 2015")
            .setLocation("800 Howard St., San Francisco, CA 94103")
            .setDescription("A chance to hear more about Google's developer products.");

    DateTime startDateTime = new DateTime("2015-05-28T09:00:00-07:00");
    EventDateTime start = new EventDateTime()
            .setDateTime(startDateTime)
            .setTimeZone("America/Los_Angeles");
    event.setStart(start);

    DateTime endDateTime = new DateTime("2015-05-28T17:00:00-07:00");
    EventDateTime end = new EventDateTime()
            .setDateTime(endDateTime)
            .setTimeZone("America/Los_Angeles");
    event.setEnd(end);

    String calendarId = "primary";
    event = service.events().insert(calendarId, event).execute();
    System.out.printf("Event created: %s\n", event.getHtmlLink());

问题:“无法解析符号 'service'”。是否可以导入 'service',这样我就可以使用 Java 代码来插入带有 Android 的事件,或者我是否必须使用完全不同的方式来创建事件?

Link 到 Google 创建事件的介绍:https://developers.google.com/google-apps/calendar/create-events

这个问题我来晚了。不知道你有没有找到方法。但我只是想尝试解决这个问题。如果您已阅读文档并设置了日历 Activity 的 class,那么您应该已经使用所需的权限初始化了 mCredential 对象。然后,您所要做的就是调用为创建事件而提供的简单 java 代码。我提供了一个示例方法来执行此操作:

public void createEvent(GoogleAccountCredential mCredential) {

    HttpTransport transport = AndroidHttp.newCompatibleTransport();
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
    com.google.api.services.calendar.Calendar service = new com.google.api.services.calendar.Calendar.Builder(
            transport, jsonFactory, mCredential)
            .setApplicationName("R_D_Location Callendar")
            .build();


    Event event = new Event()
            .setSummary("Event- April 2016")
            .setLocation("Dhaka")
            .setDescription("New Event 1");

    DateTime startDateTime = new DateTime("2016-04-17T18:10:00+06:00");
    EventDateTime start = new EventDateTime()
            .setDateTime(startDateTime)
            .setTimeZone("Asia/Dhaka");
    event.setStart(start);

    DateTime endDateTime = new DateTime("2016-04-17T18:40:00+06:00");
    EventDateTime end = new EventDateTime()
            .setDateTime(endDateTime)
            .setTimeZone("Asia/Dhaka");
    event.setEnd(end);

    String[] recurrence = new String[]{"RRULE:FREQ=DAILY;COUNT=2"};
    event.setRecurrence(Arrays.asList(recurrence));

    EventAttendee[] attendees = new EventAttendee[]{
            new EventAttendee().setEmail("abir@aksdj.com"),
            new EventAttendee().setEmail("asdasd@andlk.com"),
    };
    event.setAttendees(Arrays.asList(attendees));

    EventReminder[] reminderOverrides = new EventReminder[]{
            new EventReminder().setMethod("email").setMinutes(24 * 60),
            new EventReminder().setMethod("popup").setMinutes(10),
    };
    Event.Reminders reminders = new Event.Reminders()
            .setUseDefault(false)
            .setOverrides(Arrays.asList(reminderOverrides));
    event.setReminders(reminders);

    String calendarId = "primary";
    try {
        event = service.events().insert(calendarId, event).execute();
    } catch (IOException e) {
        e.printStackTrace();
    }
    System.out.printf("Event created: %s\n", event.getHtmlLink());

}    

另一件事是您必须通过 AsyncTask 调用此方法。因为创建事件是一个后台进程。我希望这种方法也能解决 cannot resolve symbol service.

的问题