Xamarin:在将事件添加到android中的日历之前,请检查是否存在事件

Himanshu Dwivedi

我正在使用xamarin表单将事件添加到android平台的本机日历中。我做了依赖服务,以跨平台添加事件。我可以添加一个事件,但是在添加任何事件之前,我想应用检查来限制是否存在相同唯一标识符的任何事件,那么它不应允许添加该事件。

我尝试了一下,但是没有用,因为我Cursor在android平台上的xamarin中找不到任何类。

罗希特·维平·马修斯(Rohit Vipin Mathews)

Android上,您需要执行以下操作才能使用新的API从日历中获取数据。

您需要许可 android.permisson.READ_CALENDAR

通过使用CalendarContract与日历数据进行交互此类提供了一种应用程序与日历提供程序进行交互时可以使用的数据模型。

枚举已在日历应用程序中注册的日历。为此,我们可以调用ManagedQuery方法。至少,我们需要指定日历的内容Uri和要返回的列;此列规范称为投影。通过调用ManagedQuery,我们可以查询内容提供者的数据,例如日历提供者,并返回带有查询结果的Cursor

var calendarsUri = CalendarContract.Calendars.ContentUri;

指定投影:

string[] calendarsProjection = {
    CalendarContract.Calendars.InterfaceConsts.Id,
    CalendarContract.Calendars.InterfaceConsts.CalendarDisplayName,
    CalendarContract.Calendars.InterfaceConsts.AccountName,
   , CalendarContract.Events.InterfaceConsts.Title
   , CalendarContract.Events.InterfaceConsts.Dtstart
   , CalendarContract.Events.InterfaceConsts.Dtend
};

您可以传递更多的参数,而不是null。此处查看其他可用参数

var cursor = ManagedQuery (calendarsUri, calendarsProjection, null, null, null);

据说托管查询已弃用,最好使用ContentResolver

var cursor = context.ContentResolver.Query(calendarsUri, calendarsProjection, null, null, null);

带有日期过滤器:

var selection = "((dtstart <= ?) AND (dtend >= ?))";
var selectionArgs = new string[] { startString, endString };
Forms.Context.ApplicationContext.ContentResolver.Query(calendarsUri, calendarsProjection, selection, selectionArgs, null);

或者

var ctx = Forms.Context;
var cursor = ctx.ApplicationContext.ContentResolver.Query(calendarsUri, calendarsProjection, null, null, null);

查询的参数是:

  • cr-用于查询的ContentResolver
  • 投影-要返回的列
  • begin-从纪元开始以UTC毫秒进行查询的时间范围的开始
  • end-自纪元以来以UTC毫秒查询的时间范围的结束

此处提供整个教程和分步说明ContentResolver 这里阅读有关内容

对于iOS,您必须使用EventKit

要通过事件的ID检索事件,请使用上的EventFromIdentifier方法,EventStore并将EventIdentifier从事件中提取的事件传递给它

var mySavedEvent = App.Current.EventStore.EventFromIdentifier (newEvent.EventIdentifier);

要搜索日历事件,您必须NSPredicate通过上的PredicateForEvents方法创建一个对象EventStoreAnNSPredicate是iOS用来查找匹配项的查询数据对象:

NSPredicate query = App.Current.EventStore.PredicateForEvents (startDate, endDate, null);

第三个参数是要查询的日历,要使用所有日历,请传递null。

创建NSPredicate之后,在EventStore上使用EventsMatching方法,执行查询:

EKCalendarItem[] events = App.Current.EventStore.EventsMatching (query);

完整的教程可以在这里和样品的外观在这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Apple Watch将事件添加到日历中

来自分类Dev

尝试将事件动态添加到jQuery事件日历

来自分类Dev

使用GNOME日历将事件添加到Google日历

来自分类Dev

将事件添加到日历非常慢

来自分类Dev

将图像添加到事件-完整日历

来自分类Dev

将事件添加到日历API 7

来自分类Dev

使用Ionic框架将事件添加到设备日历

来自分类Dev

将onClick事件添加到zabuto日历

来自分类Dev

ios将事件添加到Google日历

来自分类Dev

通过Json iOS Titan将事件添加到日历

来自分类Dev

使用Ionic框架将事件添加到设备日历

来自分类Dev

如何使用FullCalendar将事件添加到Google日历?

来自分类Dev

如何将事件添加到内置日历?

来自分类Dev

目标 c:将事件添加到谷歌日历

来自分类Dev

使用Swift将事件添加到iOS8中的日历

来自分类Dev

将类添加到完整日历中的拖动事件

来自分类Dev

在 fullcalendar 中将事件添加到日历

来自分类Dev

检查日历上是否存在事件

来自分类Dev

在将行添加到数据网格视图之前检查行是否存在

来自分类Dev

在将约会添加到数据库之前检查约会是否存在

来自分类Dev

Automator +日历:从“过滤日历事件”中复制事件并添加到另一个日历

来自分类Dev

将事件侦听器添加到香草javascript中尚不存在的元素

来自分类Dev

将重复项添加到集合中或检查元素是否存在,然后添加

来自分类Dev

在没有用户确认的情况下将事件添加到日历

来自分类Dev

在将事件添加到日历Xcode的同时处理世界时间(使用T)

来自分类Dev

将事件添加到自定义日历使应用程序崩溃

来自分类Dev

将事件添加到日历上的特定日期并希望突出显示该日期

来自分类Dev

将事件添加到谷歌日历时出错 - 权限不足

来自分类Dev

如何使用 C# MSGraph 将日历事件添加到 Outlook 365

Related 相关文章

  1. 1

    使用Apple Watch将事件添加到日历中

  2. 2

    尝试将事件动态添加到jQuery事件日历

  3. 3

    使用GNOME日历将事件添加到Google日历

  4. 4

    将事件添加到日历非常慢

  5. 5

    将图像添加到事件-完整日历

  6. 6

    将事件添加到日历API 7

  7. 7

    使用Ionic框架将事件添加到设备日历

  8. 8

    将onClick事件添加到zabuto日历

  9. 9

    ios将事件添加到Google日历

  10. 10

    通过Json iOS Titan将事件添加到日历

  11. 11

    使用Ionic框架将事件添加到设备日历

  12. 12

    如何使用FullCalendar将事件添加到Google日历?

  13. 13

    如何将事件添加到内置日历?

  14. 14

    目标 c:将事件添加到谷歌日历

  15. 15

    使用Swift将事件添加到iOS8中的日历

  16. 16

    将类添加到完整日历中的拖动事件

  17. 17

    在 fullcalendar 中将事件添加到日历

  18. 18

    检查日历上是否存在事件

  19. 19

    在将行添加到数据网格视图之前检查行是否存在

  20. 20

    在将约会添加到数据库之前检查约会是否存在

  21. 21

    Automator +日历:从“过滤日历事件”中复制事件并添加到另一个日历

  22. 22

    将事件侦听器添加到香草javascript中尚不存在的元素

  23. 23

    将重复项添加到集合中或检查元素是否存在,然后添加

  24. 24

    在没有用户确认的情况下将事件添加到日历

  25. 25

    在将事件添加到日历Xcode的同时处理世界时间(使用T)

  26. 26

    将事件添加到自定义日历使应用程序崩溃

  27. 27

    将事件添加到日历上的特定日期并希望突出显示该日期

  28. 28

    将事件添加到谷歌日历时出错 - 权限不足

  29. 29

    如何使用 C# MSGraph 将日历事件添加到 Outlook 365

热门标签

归档