我想用Xamarin和google日历创建一个示例应用程序。
我的计划是使用google日历检索公共假日列表,例如:"en.usa#holiday@group.v.calendar.google.com“。
从那时起,我就不熟悉Xamarin了,我一直试图模仿https://stackoverflow.com/a/19048193/3125120答案中的行为:
credential.setSelectedAccountName(mList.get(0));client = null;凭据= GoogleAccountCredential.usingOAuth2(mContext,CalendarScopes.CALENDAR);com.google.api.services.calendar.Calendar client =getCalendarService(凭据);do { com.google.api.services.calendar.model.Events事件;events = client.events().list("en.usa#holiday@group.v.calendar.google.com").setPageToken(pageToken).execute();com.google.api.services.calendar.Calendar.Builder(AndroidHttp.newCompatibleTransport(),(events.getItems());//结果返回这里(events.getItems()) pageToken = events.getNextPageToken();} here (pageToken != null);私有com.google.api.services.calendar.Calendar getCalendarService(GoogleAccountCredential凭据){返回新的com.google.api.services.calendar.Calendar新GsonFactory(),凭证).build()};
有人能提出一种模仿同样行为的方法吗?
提前谢谢。
发布于 2020-07-09 07:43:02
我尝试了下面的代码,它只是从我的日历返回假期列表。
var calendarsUri = CalendarContract.Events.ContentUri;
var cursor = Forms.Context.ContentResolver.Query(calendarsUri, null, null, null, null);
if (cursor.MoveToFirst())
{
do
{
calendarDataList.Add(new Calendar()
{
Id = cursor.GetString(cursor.GetColumnIndex(ContactsContract.Contacts.InterfaceConsts.Id)),
CalendarDisplayName = cursor.GetString(cursor.GetColumnIndex(CalendarContract.Calendars.InterfaceConsts.CalendarDisplayName)),
AccountName = cursor.GetString(cursor.GetColumnIndex(CalendarContract.Calendars.InterfaceConsts.AccountType)),
Title = cursor.GetString(cursor.GetColumnIndex(CalendarContract.Events.InterfaceConsts.Title)),
Description = cursor.GetString(cursor.GetColumnIndex(CalendarContract.Events.InterfaceConsts.Description)),
Dtstart = cursor.GetString(cursor.GetColumnIndex(CalendarContract.Events.InterfaceConsts.Dtstart)),
Dtend = cursor.GetString(cursor.GetColumnIndex(CalendarContract.Events.InterfaceConsts.Dtend))
});
} while (cursor.MoveToNext());
}
calendarDataList包含所有的公共假日。
https://stackoverflow.com/questions/48238952
复制