官方文档:https://developer.android.com/guide/topics/providers/calendar-provider.html
一、什么是Calendar Provider
其实是就是Android专门用于存储用户的日程与日程事件的数据库,通过读写日程与日程事件相关数据可以不需要启动自己的应用而借助于系统日历应用做一些提醒用户的操作,应用场景:还贷提醒、计划提醒、图书馆还书提醒等。
二、Calendar数据库中重要的表
1、CalendarContract.Calendars:该表的作用是每条记录存放单独的日程详情,日程可以简单理解成用户的一个计划,而事件就是这个计划的一些通知,比如提醒、有没有开始、完成了没有等。具体有如下的字段:最重要的就是ownerAccount,也叫做cal_id,因为事件的加入、提醒都需要使用这个id,可以叫做日程账户。
0 = "ownerAccount"
1 = "sync_events"
2 = "cal_sync6"
3 = "cal_sync8"
4 = "maxReminders"
5 = "canPartiallyUpdate"
6 = "_sync_id"
7 = "COALESCE(isPrimary, ownerAccount = account_name)"
8 = "allowedReminders"
9 = "_id"
10 = "calendar_timezone"
11 = "calendar_access_level"
12 = "calendar_displayName"
13 = "dirty"
14 = "cal_sync10"
15 = "calendar_color"
16 = "cal_sync3"
17 = "cal_sync9"
18 = "cal_sync1"
19 = "canOrganizerRespond"
20 = "cal_sync7"
21 = "canModifyTimeZone"
22 = "visible"
23 = "account_type"
24 = "allowedAttendeeTypes"
25 = "cal_sync2"
26 = "mutators"
27 = "calendar_location"
28 = "allowedAvailability"
29 = "calendar_color_index"
30 = "name"
31 = "cal_sync5"
32 = "deleted"
33 = "account_name"
34 = "cal_sync4"
(1)日程数据库的读写需要声明权限,代码如下: