将联系人保存为“电话联系人”
Posted
技术标签:
【中文标题】将联系人保存为“电话联系人”【英文标题】:Save Contacts as "Phone contact" 【发布时间】:2017-12-01 15:15:33 【问题描述】:有没有办法以编程方式将联系人作为“电话联系人”添加到内部电话通讯录?
我试过了:
list.add(ContentProviderOperation
.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.build());
使用此参数联系人成功保存到手机,但如果我将过滤器设置为“仅显示手机联系人” - 创建的联系人不会出现。顺便说一句,我读到 null
类型的联系人可能会丢失干燥帐户同步(不记得完整的案例)
然后我尝试从现有电话联系人中检索 ACCOUNT_TYPE
和 ACCOUNT_NAME
并获取 Phone
和 Local Phone Account
字符串,但是当我尝试使用相同参数保存联系人时:
list.add(ContentProviderOperation
.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, "Phone")
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, "Local Phone Account")
.build());
结果与null
类型的第一种情况相同。
是否有任何常量(或者应该是另一种方式)来保存“电话联系人”之类的数据?
【问题讨论】:
【参考方案1】:普通android
不完全支持“phone only
”帐户,它通常由设备制造商添加(或解锁)。
这是我知道的,如果您发现更多,请随时添加。
格式为<maker>
:ACCOUNT_TYPE
,ACCOUNT_NAME
-
三星:“vnd.sec.contact.phone:”vnd.sec.contact.phone“
htc: "com.htc.android.pcsc: "pcsc"
sony: "com.sonyericsson.localcontacts: "电话联系人"
lge: "com.lge.sync: "电话"
lge(选项 2):“com.lge.phone”
t-mobile: "vnd.tmobileus.contact.phone: "MobileLife 联系人"
huawei: "com.android.huawei.phone: "电话"
联想:“本地电话帐户:“电话”
小米:“com.xiaomi”
oppo:“com.oppo.contacts.device”
【讨论】:
我假设 lge 的第二个选项的 ACCOUNT_NAME 也是“电话”,对吧?以上是关于将联系人保存为“电话联系人”的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 xmpp 框架和 openfire 服务器将电话簿联系人添加到 ios 中的聊天应用程序?