1

有没有办法以编程方式将联系人添加到内部电话通讯录中作为“电话联系人”?

我试过了:

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_NAMEPhoneLocal 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类型的情况相同。

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

4

1 回答 1

5

phone onlyplain 不完全支持" " 帐户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:”电话联系人“
  4. lge:“com.lge.sync:”电话“
  5. lge(选项 2):“com.lge.phone”
  6. t-mobile: "vnd.tmobileus.contact.phone: "MobileLife 联系人"
  7. 华为:“com.android.huawei.phone:”电话“
  8. 联想:“本地电话帐户:”电话“
  9. 小米:“com.xiaomi”
  10. oppo:“com.oppo.contacts.device”
于 2017-06-28T12:09:44.237 回答