将联系人另存为 "Phone contact"

Save Contacts as "Phone contact"

有没有办法以编程方式将联系人作为 "phone contact" 添加到内部 phone 通讯录?

我试过:

list.add(ContentProviderOperation
                .newInsert(ContactsContract.RawContacts.CONTENT_URI)
                .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
                .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
                .build());

使用此参数联系人成功保存到 phone,但如果我将过滤器设置为 "display phone contacts only" - 创建的联系人不会出现。顺便说一句,我读到 null 类型的联系人可能会失去干燥帐户同步(不记得完整的案​​例)

然后我尝试从现有的 phone 联系人中检索 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类型的情况相同。

是否有常量(或者应该是另一种方式)来保存像"phone contact"这样的数据?

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

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

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