我在 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);
联系人被正确修改。联系人姓名的所有新值都会显示。
但是,如果我查看我的联系人应用程序,则会在我进行修改后出现一个名为“(未知)”的新联系人。我可以插入任意数量的联系人,但每次修改都会创建一个新的“(未知)”联系人。
有人有想法么?