【问题标题】:Android - set birthday to an existent contactAndroid - 为现有联系人设置生日
【发布时间】:2023-03-02 22:37:01
【问题描述】:

我正在尝试将 android 联系人提供程序的生日设置为没有该字段的现有联系人,我尝试使用我用来更新 已经的联系人生日的方法strong> 有生日设置:

fun updateBirthdate(id: Long, birthdate: String) {

    val list = ArrayList<ContentProviderOperation>()

    val where = """${ContactsContract.Data.CONTACT_ID}  = ?
        AND ${ContactsContract.Data.MIMETYPE} = ?"""
    val whereParams =
            arrayOf(id.toString(), ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE)

    list.add(ContentProviderOperation.newUpdate(
            ContactsContract.Data.CONTENT_URI)
            .withSelection(where, whereParams)
            .withValue(ContactsContract.CommonDataKinds.Event.START_DATE, birthdate)
            .withValue(ContactsContract.CommonDataKinds.Event.TYPE,
                    ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY)
            .build())

    context.contentResolver.applyBatch(ContactsContract.AUTHORITY, list)
}

但它不起作用,我也尝试插入一个新行:

list.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
            .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
            .withValue(ContactsContract.Data.MIMETYPE, CommonDataKinds.Event.CONTENT_ITEM_TYPE)
            .withValue(CommonDataKinds.Event.START_DATE, birthdate)
            .withValue(CommonDataKinds.Event.TYPE, ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY)
            .build())

但是以上都不起作用,有什么帮助吗?

【问题讨论】:

    标签: android android-contacts contactscontract


    【解决方案1】:

    首先,您的方法updateBirthdate 有一个错误,如果您有一个为其设置了多个事件的联系人,例如生日、周年纪念日等。您的代码将覆盖所有这些事件。

    您应该查询以查找保存该事件的特定 原始 联系人,并仅更新该特定原始联系人(将 Data.RAW_CONTACT_ID = ? 添加到您的选择中)。

    更新当前没有生日的现有联系人时,您可以将update 更改为insert,但是withValueBackReference 行仅在您当前正在创建新的原始联系人时才有效,我假设你没有。 所以将其更改为常规withValue 并添加到您尝试添加生日的原始联系人的 ID

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 2012-08-12
      相关资源
      最近更新 更多