我正在尝试将一个事件添加到我在 Xamarin 中制作的 Android 应用程序中的日历中。但我不断收到错误“需要 android.permission.READ_CALENDAR 或 android.permission.WRITE_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);
}
}
}
最佳答案
在 AndroidManifest.xml ,您必须声明您的应用需要哪些权限,以便 Android 可以在用户安装应用时通知用户。
设置读取日历和写入日历权限应该可以解决您的问题。
关于android - 在 Android Xamarin 中使用我的日历的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31593048/