将联系人保存为“电话联系人”

时间:2017-06-28 10:02:07

标签: android android-contacts contactscontract rawcontacts

是否可以通过编程方式将联系人添加到内部电话联系人簿中作为“电话联系人”?

我试过了:

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个字符串,但当我尝试使用相同的参数保存联系人时:< / p>

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 个答案:

答案 0 :(得分:4)

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

以下是我所知道的,如果您发现更多,请随时添加更多 格式为<maker>ACCOUNT_TYPEACCOUNT_NAME

  1. samsung:“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:”Phone“
  5. lge(选项2):“com.lge.phone”
  6. t-mobile:“vnd.tmobileus.contact.phone:”MobileLife Contacts“
  7. huawei:“com.android.huawei.phone:”电话“
  8. 联想:“本地电话帐户:”电话“