在Android Xamarin中使用我的日历的权限

在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

我正在尝试在我用Xamarin制作的android应用程序中向我的日历添加一个事件。但我一直得到一个错误“需要android.permission.READ\u CALENDAR或android.permission.WRITE\u CALENDAR”。有人能帮我吗?这是我的代码。。。。。 谢谢你

    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" />