Xamarin 日历合约 [英] Xamarin CalendarContract
本文介绍了Xamarin 日历合约的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用 DependencyService 以 xamarin 形式创建日历并使用以下代码创建事件:
I'm creating a calendar in xamarin forms using DependencyService and creating events with this code:
ContentResolver cr = ((Activity)Forms.Context).ContentResolver;
ContentValues values = new ContentValues();
var uri = CalendarContract.Calendars.ContentUri;
values.Put(CalendarContract.Events.InterfaceConsts.CalendarId, Id);
values.Put(CalendarContract.Events.InterfaceConsts.Title, title);
values.Put(CalendarContract.Events.InterfaceConsts.Description, description);
values.Put(CalendarContract.Events.InterfaceConsts.Dtstart, GetDateTimeMS(year, month, day, hour, minute));
values.Put(CalendarContract.Events.InterfaceConsts.Dtend, GetDateTimeMS(year, month, day, hour, minute));
values.Put(CalendarContract.Events.InterfaceConsts.AllDay, allday ? "1" : "0");
values.Put(CalendarContract.Events.InterfaceConsts.HasAlarm, hasalarm ? "1" : "0");
values.Put(CalendarContract.Events.InterfaceConsts.EventTimezone, "GMT+" + zone + ":00");
values.Put(CalendarContract.Events.InterfaceConsts.EventEndTimezone, "GMT+" + zone + ":00");
cr.Insert(CalendarContract.Events.ContentUri, values);
我真正想要的是将这些事件添加到自己创建的日历中.如何先创建日历,然后将上述事件添加到其中?
What I exactly want is to add those events to a self-created calendar. How do I create a calendar first and then add the above events into it?
推荐答案
以下是在设备上创建新日历的示例,摘自 来源:
Here's an example of creating a new calendar on the device, taken from Source:
var uri = CalendarContract.Calendars.ContentUri;
ContentValues val = new ContentValues();
val.Put(CalendarContract.Calendars.InterfaceConsts.AccountName, AccountName);
val.Put(CalendarContract.Calendars.InterfaceConsts.AccountType, CalendarContract.AccountTypeLocal);
val.Put(CalendarContract.Calendars.Name, "My Calendar");
val.Put(CalendarContract.Calendars.InterfaceConsts.CalendarDisplayName, "Silverspot");
val.Put(CalendarContract.Calendars.InterfaceConsts.CalendarColor, Android.Graphics.Color.Red);
val.Put(CalendarContract.Calendars.InterfaceConsts.OwnerAccount, AccountName);
val.Put(CalendarContract.Calendars.InterfaceConsts.Visible, true);
val.Put(CalendarContract.Calendars.InterfaceConsts.SyncEvents, true);
uri = uri.BuildUpon()
.AppendQueryParameter(CalendarContract.CallerIsSyncadapter, "true")
.AppendQueryParameter(CalendarContract.Calendars.InterfaceConsts.AccountName, AccountName)
.AppendQueryParameter(CalendarContract.Calendars.InterfaceConsts.AccountType, CalendarContract.AccountTypeLocal)
.Build();
var calresult = ContentResolver.Insert(uri, val);
这篇关于Xamarin 日历合约的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文