我正在使用“未记录”的 API 来读取和写入日历事件,这并不难。但问题是在创建日历事件后,您必须等待轮询周期(我想)让设备同步它的日历,例如使用 gmail,以便事件在线显示。我发现如果您直接将事件添加到日历中,它将立即同步,因此日历应用程序中的某些内容会触发立即同步。
我可以在代码中做些什么来通知设备在完成添加新事件时同步日历?
谢谢你。
我正在使用“未记录”的 API 来读取和写入日历事件,这并不难。但问题是在创建日历事件后,您必须等待轮询周期(我想)让设备同步它的日历,例如使用 gmail,以便事件在线显示。我发现如果您直接将事件添加到日历中,它将立即同步,因此日历应用程序中的某些内容会触发立即同步。
我可以在代码中做些什么来通知设备在完成添加新事件时同步日历?
谢谢你。
ContentResolver 类有各种帮助方法来处理同步。尝试ContentResolver.requestSync()方法。
public void syncCalendars()
{
Account[] accounts = AccountManager.get(context).getAccounts();
Log.d(TAG, "Refreshing " + accounts.length + " accounts");
String authority = CalendarContract.Calendars.CONTENT_URI.getAuthority();
for (int i = 0; i < accounts.length; i++) {
Log.d(TAG, "Refreshing calendars for: " + accounts[i]);
Bundle extras = new Bundle();
extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
ContentResolver.requestSync(accounts[i], authority, extras);
}
}