2015-02-06 28 views
0

我想創建我的事件ExtendedProperties ExtendedProperties,得到了下面這個錯誤:獲得一個IllegalArgumentException試圖實現對Android的日曆

02-06 09:43:04.484: E/AndroidRuntime(9530): FATAL EXCEPTION: IntentService[AsyncQueryServiceHelper] 
02-06 09:43:04.484: E/AndroidRuntime(9530): java.lang.IllegalArgumentException: Only sync adapters may write using content://com.android.calendar/extendedproperties 
02-06 09:43:04.484: E/AndroidRuntime(9530):  at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:167) 
02-06 09:43:04.484: E/AndroidRuntime(9530):  at android.database.DatabaseUtils.readExceptionWithOperationApplicationExceptionFromParcel(DatabaseUtils.java:160) 
02-06 09:43:04.484: E/AndroidRuntime(9530):  at android.content.ContentProviderProxy.applyBatch(ContentProviderNative.java:484) 
02-06 09:43:04.484: E/AndroidRuntime(9530):  at android.content.ContentProviderClient.applyBatch(ContentProviderClient.java:227) 
02-06 09:43:04.484: E/AndroidRuntime(9530):  at android.content.ContentResolver.applyBatch(ContentResolver.java:954) 
02-06 09:43:04.484: E/AndroidRuntime(9530):  at com.android.calendar.iselection.AsyncQueryServiceHelper.onHandleIntent(AsyncQueryServiceHelper.java:327) 
02-06 09:43:04.484: E/AndroidRuntime(9530):  at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65) 
02-06 09:43:04.484: E/AndroidRuntime(9530):  at android.os.Handler.dispatchMessage(Handler.java:99) 
02-06 09:43:04.484: E/AndroidRuntime(9530):  at android.os.Looper.loop(Looper.java:176) 
02-06 09:43:04.484: E/AndroidRuntime(9530):  at android.os.HandlerThread.run(HandlerThread.java:61) 

我下面的代碼:

ContentValues customerContentValues = new ContentValues(); 
Uri uriExtendedProperties = Uri.parse("content://com.android.calendar/extendedproperties"); 
customerContentValues.put(Events._ID,model.mId); 
customerContentValues.put("ClientIdname", model.mCustomerName); 
customerContentValues.put("RdvType", model.mEventType); 
customerContentValues.put("RdvEmplacement", model.mEmplacement); 
customerContentValues.put("RdvAdresse", model.mAddresse); 
ops.add(ContentProviderOperation.newInsert(uriExtendedProperties).withValues(customerContentValues).build()); 

有什麼我錯過了 ?需要一些推..提前感謝

是否有人告訴更多關於同步適配器因爲我真的stucked ....任何建議將受到歡迎。

+0

改變你的標題及其全部未orderd – 2015-02-06 09:17:04

+0

是正確的? – Omzo25 2015-02-06 09:18:59

+0

@BhargavModi,這是正確的嗎? – Omzo25 2015-02-10 09:48:31

回答

0

ExtendedProperties與普通的EvnetsAttendees表有點不同。

爲了寫它,你將需要修改的URI你正在使用和添加 'caller_is_syncadapter', 'ACCOUNT_NAME' 和 'ACCOUNT_TYPE' PARAMS。

這裏有一個例子:

Uri extendedPropUri = ExtendedProperties.CONTENT_URI; 
    extendedPropUri = extendedPropUri.buildUpon() 
      .appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER,"true") 
      .appendQueryParameter(Calendars.ACCOUNT_NAME, this.accountName) 
      .appendQueryParameter(Calendars.ACCOUNT_TYPE, this.accountType).build(); 

,然後插入樣子:

ContentValues extraDataValues = new ContentValues(); 
extraDataValues.put(ExtendedProperties.EVENT_ID, eventId); 
extraDataValues.put(ExtendedProperties.NAME, key); 
extraDataValues.put(ExtendedProperties.VALUE, value); 

context.getContentResolver().insert(extendedPropUri, extraDataValues);