2010-07-14 58 views
0

這裏有幾件事情我無法弄清楚,並能找到其他人 張貼在討論:問題與新老跟API

1. 在新的API

ContactsContract。 AggregationExceptions表並沒有真正對 工作我:

當我嘗試插入一行到表中,它給了我這個錯誤:

07-13 14:20:09.399: ERROR/XXXXX(3074): java.lang.UnsupportedOperationException: URI: content://com.android.contacts/aggregation_exceptions, calling user: ............

我的代碼在這裏:

ContentValues values = new ContentValues(); 

values.put(AggregationExceptions.RAW_CONTACT_ID1, 

String.valueOf(oldRawContactId)); 

values.put(AggregationExceptions.RAW_CONTACT_ID2, 

String.valueOf(newRawContactId)); 

values.put(AggregationExceptions.TYPE, AggregationExceptions.TYPE_KEEP_TOGETHER); 

mContentResolver.insert(AggregationExceptions.CONTENT_URI, values); 

,我敢肯定,這兩個原始接觸式ID存在。

2.in舊的API:

當我創建通訊錄一組,該組的名稱將不顯示(或不正確顯示)

下面的代碼:

ContentValues values = new ContentValues(); 

values.put(Contacts.Groups.SHOULD_SYNC, 1); 

values.put(Contacts.Groups.SYSTEM_ID, mGroupID); 

values.put(Contacts.Groups.NAME, mGroupTitle); 

mContentResolver.insert(Contacts.Groups.CONTENT_URI, values); 

3.in舊API:

當我插入用於接觸一個自定義的IM聯繫人的方法,該數據被插入並正確顯示,但使用d用戶不能編輯的接觸默認聯繫應用程序了。如果我刪除了聯繫方式,用戶可以再次編輯聯繫人。

這裏的插入的聯繫方式的代碼:

ContentValues values = new ContentValues(); 

values.put(ContactMethods.PERSON_ID, newContactId); 

values.put(ContactMethods.KIND, Contacts.KIND_IM); 

values.put(ContactMethods.TYPE, ContactMethods.TYPE_CUSTOM); 

values.put(ContactMethods.AUX_DATA, ContactMethods.encodeCustomImProtocol(MYIM_PROTOCOL)); 

values.put(ContactMethods.DATA, buddyId); 

values.put(ContactMethods.ISPRIMARY, 0); 

values.put(ContactMethods.LABEL, IM_LABEL); 

mContentResolver.insert(ContactMethods.CONTENT_URI, values); 

回答

2

AggregationExceptions不支持插入或刪除,只更新。做一個更新,它會,「只是工作。」 javadoc解釋了這一點:

Constants for the contact aggregation exceptions table, which contains aggregation rules overriding those used by automatic aggregation. This type only supports query and update. Neither insert nor delete are supported.