admin管理员组

文章数量:1648393


在做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 是与账户相关的数据 如果完成了账户的管理 这两个值很容易得到。

本文标签: SyncSyncAdapterCalendaraccountnamewrite