在Android Xamarin中使用我的日历的权限
我正在尝试在我用Xamarin制作的android应用程序中向我的日历添加一个事件。但我一直得到一个错误“需要android.permission.READ\u CALENDAR或android.permission.WRITE\u CALENDAR”。有人能帮我吗?这是我的代码。。。。。 谢谢你在Android Xamarin中使用我的日历的权限,android,xamarin,calendar,xamarin.forms,Android,Xamarin,Calendar,Xamarin.forms,我正在尝试在我用Xamarin制作的android应用程序中向我的日历添加一个事件。但我一直得到一个错误“需要android.permission.READ\u CALENDAR或android.permission.WRITE\u CALENDAR”。有人能帮我吗?这是我的代码。。。。。 谢谢你 using System; using MyApp; using MyApp.Droid; using Android.Content; using Andr
using System;
using MyApp;
using MyApp.Droid;
using Android.Content;
using Android.Provider;
using Xamarin.Forms;
[assembly: Xamarin.Forms.Dependency (typeof (CalendarManager))]
namespace MyApp.Droid
{
public class CalendarManager : ICalendarManager
{
public CalendarManager () {}
//public const string WRITE_CALENDAR = "android.permission.WRITE_CALENDAR";
//public const string READ_CALENDAR = "android.permission.READ_CALENDAR";
//android.permission.WRITE_CALENDAR
public void SaveEvent(DateTime start, DateTime end, string title, string notes, string location, bool allday)
{
ContentValues eventDetails = new ContentValues();
eventDetails.Put (CalendarContract.Events.InterfaceConsts.Dtstart, start.ToUniversalTime ().ToString ());
eventDetails.Put (CalendarContract.Events.InterfaceConsts.Dtend, end.ToUniversalTime ().ToString ());
eventDetails.Put(CalendarContract.Events.InterfaceConsts.Title, title);
eventDetails.Put(CalendarContract.Events.InterfaceConsts.EventLocation, location);
eventDetails.Put(CalendarContract.Events.InterfaceConsts.AllDay, allday);
eventDetails.Put(CalendarContract.Events.InterfaceConsts.EventTimezone, "UTC");
eventDetails.Put(CalendarContract.Events.InterfaceConsts.EventEndTimezone, "UTC");
var ctx = Forms.Context;
ctx.ContentResolver.Insert(CalendarContract.Events.ContentUri, eventDetails);
}
}
}
在中,您必须声明应用程序所需的权限,以便Android在用户安装应用程序时通知用户
设置“读取日历”和“写入日历”权限可以解决您的问题。您可以在应用程序的“AndroidManifest.xml”文件中的
标记中明确添加日历API的权限标记,如下所示:
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />