Contactscontract不要将某些数据保存到联系人
我正在使用ContactScontract将大量数据保存到联系人(我真的不希望第二个。当活动启动时,唯一包含我输入信息的字段是:名字,中间名,姓氏,公司,标题,phone1-3 +其标签,电子邮件1和2 +标签以及笔记。
这意味着我缺少前缀,后缀,昵称,im handle and type,整个家庭和工作地址以及日期(Birtdhay和Anniversary)。当然,我只尝试了第一个.Apply {},但结果是相同的。我在做什么错?
val intent = Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI).apply {
type = ContactsContract.RawContacts.CONTENT_TYPE
putExtra(ContactsContract.Intents.Insert.NAME, fullName)
putExtra(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, givenName)
putExtra(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, familyName)
putExtra(ContactsContract.CommonDataKinds.StructuredName.PREFIX, prefix)
putExtra(ContactsContract.CommonDataKinds.StructuredName.SUFFIX, suffix)
putExtra(ContactsContract.CommonDataKinds.Nickname.NAME, nickname)
putExtra(ContactsContract.Intents.Insert.EMAIL, homeEmail)
putExtra(ContactsContract.Intents.Insert.EMAIL_TYPE, ContactsContract.CommonDataKinds.Email.TYPE_HOME)
putExtra(ContactsContract.Intents.Insert.SECONDARY_EMAIL, workEmail)
putExtra(ContactsContract.Intents.Insert.SECONDARY_EMAIL_TYPE, ContactsContract.CommonDataKinds.Email.TYPE_WORK)
putExtra(ContactsContract.Intents.Insert.PHONE, cellPhone)
putExtra(ContactsContract.Intents.Insert.PHONE_TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
putExtra(ContactsContract.Intents.Insert.SECONDARY_PHONE, homePhone)
putExtra(ContactsContract.Intents.Insert.SECONDARY_PHONE_TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_HOME)
putExtra(ContactsContract.Intents.Insert.TERTIARY_PHONE, workPhone)
putExtra(ContactsContract.Intents.Insert.TERTIARY_PHONE_TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_WORK)
putExtra(ContactsContract.Intents.Insert.IM_HANDLE, imHandle)
putExtra(ContactsContract.Intents.Insert.IM_PROTOCOL, imProtocol)
putExtra(ContactsContract.Intents.Insert.COMPANY, organization)
putExtra(ContactsContract.Intents.Insert.JOB_TITLE, jobTitle)
putExtra(ContactsContract.CommonDataKinds.Website.URL, website)
putExtra(ContactsContract.Intents.Insert.NOTES, notes)
putExtra(ContactsContract.CommonDataKinds.StructuredPostal.STREET, homeAddressStreetName)
putExtra(ContactsContract.CommonDataKinds.StructuredPostal.CITY, homeLocality)
putExtra(ContactsContract.CommonDataKinds.StructuredPostal.REGION, homeRegion)
putExtra(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE, homePostalCode)
putExtra(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY, homeCountry)
putExtra(ContactsContract.CommonDataKinds.StructuredPostal.TYPE, ContactsContract.CommonDataKinds.StructuredPostal.TYPE_HOME)
putExtra(ContactsContract.CommonDataKinds.Event.START_DATE, birthday)
putExtra(ContactsContract.CommonDataKinds.Event.TYPE, ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY)
}.apply {
type = ContactsContract.RawContacts.CONTENT_TYPE
putExtra(ContactsContract.CommonDataKinds.StructuredPostal.STREET, workAddressStreetName)
putExtra(ContactsContract.CommonDataKinds.StructuredPostal.CITY, workLocality)
putExtra(ContactsContract.CommonDataKinds.StructuredPostal.REGION, workRegion)
putExtra(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE, workPostalCode)
putExtra(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY, workCountry)
putExtra(ContactsContract.CommonDataKinds.StructuredPostal.TYPE, ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK)
putExtra(ContactsContract.CommonDataKinds.Event.START_DATE, anniversary)
putExtra(ContactsContract.CommonDataKinds.Event.TYPE, ContactsContract.CommonDataKinds.Event.TYPE_ANNIVERSARY)
}
startActivity(intent)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不能在
Contactscontract.commondatakinds.x
下使用intent.action_insert
支持字段的列表在这里:https://developer.android.com/reference/android/provider/ContactsContract.Intents.Insert#constants_1
例如,可能会添加家庭地址:
但是请注意,您不能对此添加多个邮政地址。
Special 数据常数通过指定值和Mimetype来添加您想要的任何数据:
You can't use constants under
ContactsContract.CommonDataKinds.X
withIntent.ACTION_INSERT
The list of supported fields is here: https://developer.android.com/reference/android/provider/ContactsContract.Intents.Insert#constants_1
So for example home address might be added like this:
But note you can't add multiple postal addresses with this.
The special DATA constant is different, it allows you to add whatever data you want by specifying the value and mimetype: