Android日历illegalArgumentException
我有以下错误消息 illegalArgumentException:只有同步适配器可以写入ownerAccount 使用时Android日历illegalArgumentException,android,xamarin,xamarin.forms,Android,Xamarin,Xamarin.forms,我有以下错误消息 illegalArgumentException:只有同步适配器可以写入ownerAccount 使用时 **this line:---** values.Put(CalendarContract.Calendars.InterfaceConsts.OwnerAccount, AccountOwner); values.Put(CalendarContract.Calendars.InterfaceConsts.AccountName, AccountName); value
**this line:---** values.Put(CalendarContract.Calendars.InterfaceConsts.OwnerAccount,
AccountOwner);
values.Put(CalendarContract.Calendars.InterfaceConsts.AccountName, AccountName);
values.Put(CalendarContract.Calendars.InterfaceConsts.Id, CalendarID);
values.Put(CalendarContract.Calendars.InterfaceConsts.Visible, 1);
values.Put(CalendarContract.Calendars.InterfaceConsts.SyncEvents, 1);
cr.Insert(CalendarContract.Calendars.ContentUri, values);
这是怎么可能的?每个例子都试过了。
我从OnActivity中的AccountPicker获取帐户名结果如下
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
if(requestCode == MyClass.RequestCode && resultCode == Result.Ok)
{
GSDEvents.AccountName = data.GetStringExtra(AccountManager.KeyAccountName);
DependencyService.Get<MyClass>().AddCalendar(8, GSDFuncties.ApplicationName, MyClass.AccountName, MyClass.AccountName);
Toast.MakeText(this, GSDEvents.AccountName, ToastLength.Long).Show();
}
}
activityresult上的受保护覆盖无效(int-requestCode,[GeneratedEnum]结果代码,意图数据)
{
base.OnActivityResult(请求代码、结果代码、数据);
if(requestCode==MyClass.requestCode&&resultCode==Result.Ok)
{
GSDEvents.AccountName=data.GetStringExtra(AccountManager.KeyAccountName);
DependencyService.Get().AddCalendar(8,gsdfuncies.ApplicationName,MyClass.AccountName,MyClass.AccountName);
Toast.MakeText(this,GSDEvents.AccountName,ToastLength.Long).Show();
}
}
通过使用解决:
calUri = calUri.BuildUpon()
.AppendQueryParameter(CalendarContract.CallerIsSyncadapter, "true")
.AppendQueryParameter(CalendarContract.Calendars.InterfaceConsts.AccountName, AccountName)
.AppendQueryParameter(CalendarContract.Calendars.InterfaceConsts.AccountType, CalendarContract.AccountTypeLocal)
.Build();
cr.Insert(calUri, values);
通过使用解决:
calUri = calUri.BuildUpon()
.AppendQueryParameter(CalendarContract.CallerIsSyncadapter, "true")
.AppendQueryParameter(CalendarContract.Calendars.InterfaceConsts.AccountName, AccountName)
.AppendQueryParameter(CalendarContract.Calendars.InterfaceConsts.AccountType, CalendarContract.AccountTypeLocal)
.Build();
cr.Insert(calUri, values);
您是否具有对日历进行R/W:Yes读取和写入的适当清单权限您是否具有对日历进行R/W:Yes读取和写入的适当清单权限