-1

我在 Android 2.2 设备上有一个奇怪的问题。我有一个现有的联系人,我通过以下方式对其进行修改操作:

ContentProviderOperation.Builder builder =
ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
    .withSelection(ContactsContract.Data.CONTACT_ID + "=? AND " +
    ContactsContract.Data.MIMETYPE + "=?",
    new String[]{id,
    ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE})
    .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,displayName)
    .withValue(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME,familyName)
    .withValue(ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME,middleName)
    .withValue(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,givenName)
    .withValue(ContactsContract.CommonDataKinds.StructuredName.PREFIX,honorificPrefix)
   .withValue(ContactsContract.CommonDataKinds.StructuredName.SUFFIX,honorificSuffix);

mApp.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);

联系人被正确修改。联系人姓名的所有新值都会显示。

但是,如果我查看我的联系人应用程序,则会在我进行修改后出现一个名为“(未知)”的新联系人。我可以插入任意数量的联系人,但每次修改都会创建一个新的“(未知)”联系人。

有人有想法么?

4

1 回答 1

0

作为导致问题的较大函数的一部分,对 RAW_CONTACT_ID 有错误的 newInsert() 调用。抱歉浪费时间的问题。

于 2011-01-13T00:15:26.130 回答