Sha*_*one 0 android duplicates contacts
在Android 2.1 update 1中添加重复的联系人字段时,我有一个很大的问题
请看看我的代码:
ArrayList<ContentProviderOperation> op_list = new ArrayList<ContentProviderOperation>();
op_list.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.build());
// first and last names
op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, 0)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.GIVEN_NAME, "MyFirstName")
.withValue(StructuredName.FAMILY_NAME, "MyLastName")
.build());
try{
ContentProviderResult[] results = cResolver.applyBatch(ContactsContract.AUTHORITY, op_list);
}catch(Exception e){
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
尝试在20迭代循环中运行这段代码,然后转到联系人应用程序,你会看到只有8个联系人挂在那里!当我插入重复的电子邮件,电话,组织时也会发生此问题.尝试在0-> 200的循环中,android会发疯!
我的代码中有问题吗?这有什么解决方案吗?
任何帮助将非常感谢...谢谢!
经过2个非休眠日......重新阅读我的代码并重写我的类,我找到了解决方案:有一个我不知道的列,它甚至不存在于早期的API中:AGGREGATION_MODE
所以解决方案原来是这样的:
ArrayList<ContentProviderOperation> op_list = new ArrayList<ContentProviderOperation>();
op_list.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DISABLED)
.build());
// first and last names
op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, 0)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.GIVEN_NAME, "MyFirstName")
.withValue(StructuredName.FAMILY_NAME, "MyLastName")
.build());
try{
ContentProviderResult[] results = cResolver.applyBatch(ContactsContract.AUTHORITY, op_list);
}catch(Exception e){
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1962 次 |
| 最近记录: |