从联系人中删除自定义帐户 ACCOUNT_TYPE
Posted
技术标签:
【中文标题】从联系人中删除自定义帐户 ACCOUNT_TYPE【英文标题】:Remove custom account ACCOUNT_TYPE from contacts 【发布时间】:2017-02-03 09:37:25 【问题描述】:我创建了一个自定义帐户,并在该帐户中添加了一些联系人。所以现在我想从这些联系人中删除该帐户。几周以来我一直在谷歌搜索,但我找不到任何东西。如果有人知道该怎么做,请帮助我。
谢谢。
【问题讨论】:
【参考方案1】:下面的代码解决了我的问题:)
String selection = ContactsContract.RawContacts._ID+ "=?";
String selectionargs[] = String.valueOf(rawContactId) ; //Get rawContactId
int deletedRawContacts = context.getContentResolver().delete(ContactsContract.RawContacts.CONTENT_URI.buildUpon()
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_NAME, ACCOUNT_NAME)
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_TYPE, ACCOUNT_TYPE)
.appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true").build(),
selection,selectionargs);
System.out.println("No. of contacts deleted are " + deletedRawContacts);
参考: https://***.com/a/8692909/3142192
【讨论】:
【参考方案2】:注意:您应该修改RawContacts
,而不是Contacts
。
Contacts
只是简单地加入了RawContacts
,而RawContacts
是在一个帐户上创建的。
不确定这是否可能,因为RawContacts
需要完全属于一个帐户。
您可以尝试循环遍历这些 RawContacts
,并将 account_type
和 account_name
的值更改为其他一些有效和现有帐户。
它有成功的机会,但我不确定你是否可以指望它适用于所有 android
版本/设备。
【讨论】:
如果我尝试删除 RawContacts 那么整个联系人都会被删除:( 您是否要删除这些 RawContacts 或更改他们的帐户?您可以通过在手机设置>帐户>自定义帐户>删除帐户中删除帐户来轻松手动删除它们。 我不想删除所有联系人。我只想删除几个或可能是一个联系人。 你说的是手动删除吗?如果是这样,只需在您的联系人应用程序中打开该联系人,单击编辑 > 菜单 > 单独。现在,您将在自己的联系人中获取每个 RawContact,删除您不想要的,然后重新合并其余的。 我解决了我的问题。感谢您的回复@marmor以上是关于从联系人中删除自定义帐户 ACCOUNT_TYPE的主要内容,如果未能解决你的问题,请参考以下文章
如何在本地联系人应用程序中让自定义帐户像 Google/LinkedIn/Facebook 一样显示?