如何使用 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.
的问题
我正在尝试使用 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.
的问题