如何在Android中读取Google日历事件?
我读所有的Android日历事件,它是通过使用此下面的代码工作正常,但我想我。如何能做到这一点,以获取所有与用户邮件帐户的谷歌日历事件?任何建议或示例程序将非常有用!如何在Android中读取Google日历事件?
例如:我想要得到[email protected]的事件(这是我在Android手机打开邮件帐户)
public static void readCalendarEvent(Context context) throws ParseException {
ContentResolver contentResolver = context.getContentResolver();
Calendar calendar = Calendar.getInstance();
String dtstart = "dtstart";
String dtend = "dtend";
SimpleDateFormat displayFormatter = new SimpleDateFormat("MMMM dd, yyyy (EEEE)");
stime=displayFormatter.format(calendar.getTime());
SimpleDateFormat startFormatter = new SimpleDateFormat("MM/dd/yy");
String dateString = startFormatter.format(calendar.getTime());
long after = calendar.getTimeInMillis();
SimpleDateFormat formatterr = new SimpleDateFormat("hh:mm:ss MM/dd/yy");
Calendar endOfDay = Calendar.getInstance();
Date dateCCC = formatterr.parse("47:59:59 " + dateString);
endOfDay.setTime(dateCCC);
cursor = contentResolver.query(Uri.parse("content://com.android.calendar/calendars"), (new String[] { "calendar_id", "title", "description", "dtstart", "dtend","eventTimezone", "eventLocation" }), "(" + dtstart + ">" + after + " and " + dtend + "<" + endOfDay.getTimeInMillis() + ")", null, "dtstart ASC");
gCalendar = new ArrayList<GoogleCalendar>();
try {
if (cursor.getCount() > 0) {
while (cursor.moveToNext()) {
GoogleCalendar googleCalendar = new GoogleCalendar();
gCalendar.add(googleCalendar);
int calendar_id = cursor.getInt(0);
googleCalendar.setCalendar_id(calendar_id);
String title = cursor.getString(1);
googleCalendar.setTitle(title);
String description = cursor.getString(2);
googleCalendar.setDescription(description);
String dtstart1 = cursor.getString(3);
dt=convertDate(dtstart1,"hh:mm:ss");
googleCalendar.setDtstart(dt);
String dtend1 = cursor.getString(4);
googleCalendar.setDtend(dtend1);
String eventTimeZone=cursor.getString(5);
googleCalendar.setEventTimeZone(eventTimeZone);
String eventlocation = cursor.getString(6);
googleCalendar.setEventlocation(eventlocation);
}
}
} catch (AssertionError ex) {
ex.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
您可以阅读this page。它写道,你如何获得日历信息。
简单地说,
- 得到记录在Android设备的帐户。 (返回的对象是帐户。)
- 得到具体有日历列表。
- 获取特定时间范围内的事件。 (这是一个日历。)
- 为所有日历重复3。
这个职位是有点老了,但这里是获取在Android的相关Calendar
内容提供商数据的另一种简单的解决方案:
使用此lib目录下:https://github.com/EverythingMe/easy-content-providers
现在,让所有日历:
CalendarProvider calendarProvider = new CalendarProvider(context);
List<Calendar> calendars = calendarProvider.getCalendars().getList();
或者,让所有活动的具体日程:
List<Event> calendars = calendarProvider.getEvents(calendar.id).getList();
而且也有选项来获得提醒,与会者,实例。
它与列表或光标有一个示例应用程序,看看它的外观和工作方式。 事实上,对于所有Android内容提供商,如支持:联系人,短信,通话,... 完整文档的所有选项:https://github.com/EverythingMe/easy-content-providers/wiki/Android-providers
希望它能帮助:)
复发性事件问题 –
@sromku它似乎并没有实现setter方法.. 。很大的自由度虽然 –
有人可以发布一个完整的例子吗? –
弄来的解决方案?如果是的话请帮助我。 –
你检查这个网站 - https://live.temboo.com/library/Library/Google/Calendar/
它可以帮助你。参考号码SO-https://stackoverflow.com/questions/15438606/how-to-start-with-google-calendar-api-in-android – Yup