【问题标题】:Problems in adding data to ContactsContract.CommonDataKinds.StructuredName向 ContactsContract.CommonDataKinds.StructuredName 添加数据时出现问题
【发布时间】:2012-04-07 21:06:47
【问题描述】:

我正在尝试使用以下代码在 StructuredName 中添加联系人数据。问题是添加了 GIVEN_NAME 但未添加其他字段。

ops.add(ContentProviderOperation
                .newInsert(ContactsContract.Data.CONTENT_URI)
                .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
                .withValue(
                        ContactsContract.Data.MIMETYPE,
                        ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
                .withValue(
                        ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,
                        givenName).build());

        ops.add(ContentProviderOperation
                .newInsert(ContactsContract.Data.CONTENT_URI)
                .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
                .withValue(
                        ContactsContract.Data.MIMETYPE,
                        ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
                .withValue(
                        ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME,
                        familyName).build());

FAMILY_NAME 未添加。如果我评论 GIVEN_NAME .. FAMILY_NAME 的块代码,则会添加。但是没有添加其他字段。

【问题讨论】:

  • 你能给我们更多的代码上下文吗?
  • 问题已解决。在下面的帖子中回答:)

标签: android android-contacts contactscontract import-contacts rawcontacts


【解决方案1】:

通过以下方式添加所有数据后必须 .build():

ops.add(ContentProviderOperation
            .newInsert(ContactsContract.Data.CONTENT_URI)
            .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
            .withValue(
                    ContactsContract.Data.MIMETYPE,
                    ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
            .withValue(
                    ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,
                    givenName) // Don't call build() here


            .withValue(
                    ContactsContract.Data.MIMETYPE,
                    ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
            .withValue(
                    ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME,
                    familyName)

            .withValue(
                    ContactsContract.Data.MIMETYPE,
                    ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
            .withValue(
                    ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME,
                    middleName)

            .withValue(
                    ContactsContract.Data.MIMETYPE,
                    ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
            .withValue(
                    ContactsContract.CommonDataKinds.StructuredName.PREFIX,
                    prefix)

             // and other data that goes into StructuredName


            .build()); // Now call build() 

【讨论】:

  • 那么如何有条件地添加字段呢?例如,if (familyName!=null) // add family name...
猜你喜欢
  • 2011-05-20
  • 2013-04-24
  • 1970-01-01
  • 2020-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-27
相关资源
最近更新 更多