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

标签 android xamarin calendar xamarin.forms

我正在尝试将一个事件添加到我在 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/

相关文章:

java - Outlook 电子邮件和 ICS 格式 — 奇怪的行为

java - 如何将日历的时间与java.sql.Time对象进行比较?

android - 合并两个图像并保存到 sd 卡

android - 如何最小化 Android 3.2 中操作菜单项的大小?

android - 在没有 Mac 的情况下使用 Xamarin 时会出现什么情况?

javascript - 使用 Javascript 的实时日历(不是任何其他语言)

java - 写入过程中无法从服务器读取

android - 处理 Android 库的 ant 构建的正确方法。构建从 jar 文件中排除 R.class

c# - Xamarin.Forms:GroupHeaderTemplate 不可见,项目也不可见,但似乎部分呈现

xamarin - Android/Xamarin代码混淆