【问题标题】: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_TYPEACCOUNT_NAME 并获取 PhoneLocal 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类型的第一种情况相同。

是否有任何常量(或者应该是另一种方式)来保存“电话联系人”之类的数据?

【问题讨论】:

    标签: android android-contacts contactscontract rawcontacts


    【解决方案1】:

    普通Android不完全支持“phone only”帐户,它通常由设备制造商添加(或解锁)。

    这是我知道的,如果您发现更多,请随时添加。
    格式为<maker>:ACCOUNT_TYPE,ACCOUNT_NAME

    1. 三星:“vnd.sec.contact.phone:”vnd.sec.contact.phone“
    2. htc: "com.htc.android.pcsc: "pcsc"
    3. sony: "com.sonyericsson.localcontacts: "电话联系人"
    4. lge: "com.lge.sync: "电话"
    5. lge(选项 2):“com.lge.phone”
    6. t-mobile: "vnd.tmobileus.contact.phone: "MobileLife 联系人"
    7. huawei: "com.android.huawei.phone: "电话"
    8. 联想:“本地电话帐户:“电话”
    9. 小米:“com.xiaomi”
    10. oppo:“com.oppo.contacts.device”

    【讨论】:

    • 我假设 lge 的第二个选项的 ACCOUNT_NAME 也是“电话”,对吧?
    猜你喜欢
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 2012-06-17
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多