我遇到了在Android 2.0+上更新/插入联系人的问题。 当电话簿为空时插入新联系人没有任何问题,但当我做了第二次时,如 某些档案像电话,电子邮件被加倍并且被触发等01但是N,FN,ORG都可以(一个副本)。使用ContentProviderOperation更新并插入联系人
获取和其他成员的意见这个论坛上,我第一次更新的联系人,然后ContentProviderResult []返回URI与空然后我做插入的动作,它出了 确定,但在那之后我做了更新和所有联系人进行汇总之后合并为一个 - 我有1个联系人insted 3存在于电话簿中。这个被破坏了,接触场是随机构建的。
我设置了Google帐户。
代码:
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newUpdate(ContactsContract.RawContacts.CONTENT_URI)
.withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DISABLED)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, accountType)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, accountName)
.build());
// add name
ContentProviderOperation.Builder builder = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0);
builder.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
builder.withValue(ContactsContract.CommonDataKinds.StructuredName.PHONETIC_FAMILY_NAME, name);
// phones
ContentProviderOperation.Builder builder = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0);
builder.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
builder.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phoneValue);
builder.withValue(ContactsContract.CommonDataKinds.Phone.TYPE, phoneType);
builder.withValue(ContactsContract.CommonDataKinds.Phone.LABEL, phoneLabel);
ops.add(builder.build());
// emails ...
// orgs ...
try {
ContentProviderResult[] result = mContentResolver.applyBatch(ContactsContract.AUTHORITY, ops);
}
} catch (Exception e) {
Log.e(LOG_TAG, "Exception while contact updating: " + e.getMessage());
}
什么是错的这个解决方案?工作聚合引擎如何工作?
我很乐意为您提供帮助。
虚假
withSelection需要用'?'表示的参数对于字符串[]
即.withSelection(ContractsContract.Contacts._ID +“=?”,new String [] {“5”})
如果您没有任何'?'那里没有将String []值绑定到... – 2012-10-03 20:45:01
@wiseideal感谢指向正确方向的指针。 withSelection肯定是我的问题。 – Bwire 2014-06-16 14:11:15