Calender Provider API 可供应用程序和同步适配器使用。规则根据发出调用的程序类型而有所不同。本文档主要关注将日历提供程序 API 用作应用程序。
通过日历提供程序 API,应用程序和同步适配器可以获得对保存用户日历数据的数据库表的读/写访问权限。
同步适配器将用户设备上的日历数据与另一个服务器或数据源同步。在CalendarContract.Calendars 和CalendarContract.Events 表中,有一些列是为同步适配器保留的。提供者和应用程序不应修改它们。事实上,除非它们作为同步适配器访问,否则它们是不可见的。
要读取日历数据,应用程序必须在其清单文件中包含READ_CALENDAR 权限。它必须包含WRITE_CALENDAR 权限:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"...>
<uses-sdk android:minSdkVersion="14" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
...
</manifest>
这是一个帮助方法,您可以使用它来返回一个用于同步适配器的 URI:
static Uri asSyncAdapter(Uri uri, String account, String accountType) {
return uri.buildUpon()
.appendQueryParameter(android.provider.CalendarContract.CALLER_IS_SYNCADAPTER,"true")
.appendQueryParameter(Calendars.ACCOUNT_NAME, account)
.appendQueryParameter(Calendars.ACCOUNT_TYPE, accountType).build();
}
有关同步适配器的示例实现,请参阅 SampleSyncAdapter:https://developer.android.com/samples/index.html