在做Calendar SyncAdapter的时候
往Calendar表中插入Account
和
往Event表中插入 _sync_id
的时候 遇到这种错误:
Only sync adapters may write to account_name
Only sync adapters may write to _sync_id
解决方法是在
Calendars.CONTENT_URI
和
Events.CONTENT_URI
后面追加上
(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
具体代码为:
public static Uri asSyncAdapter(Uri uri, String accountName, String accountType) {
return uri.buildUpon()
.appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
.appendQueryParameter(Calendars.ACCOUNT_NAME, accountName)
.appendQueryParameter(Calendars.ACCOUNT_TYPE, accountType).build();
}
accountName & accountType 是与账户相关的数据
如果完成了账户的管理
这两个值很容易得到。