我遇到了在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