从联系人中删除自定义帐户 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,而不是ContactsContacts 只是简单地加入了RawContacts,而RawContacts 是在一个帐户上创建的。

不确定这是否可能,因为RawContacts 需要完全属于一个帐户。 您可以尝试循环遍历这些 RawContacts,并将 account_typeaccount_name 的值更改为其他一些有效现有帐户。

它有成功的机会,但我不确定你是否可以指望它适用于所有 android 版本/设备。

【讨论】:

如果我尝试删除 RawContacts 那么整个联系人都会被删除:( 您是否要删除这些 RawContacts 或更改他们的帐户?您可以通过在手机设置>帐户>自定义帐户>删除帐户中删除帐户来轻松手动删除它们。 我不想删除所有联系人。我只想删除几个或可能是一个联系人。 你说的是手动删除吗?如果是这样,只需在您的联系人应用程序中打开该联系人,单击编辑 > 菜单 > 单独。现在,您将在自己的联系人中获取每个 RawContact,删除您不想要的,然后重新合并其余的。 我解决了我的问题。感谢您的回复@marmor

以上是关于从联系人中删除自定义帐户 ACCOUNT_TYPE的主要内容,如果未能解决你的问题,请参考以下文章

如何从自定义帐户中检索联系方式?

如何以编程方式在android中添加自定义帐户?

如何在本地联系人应用程序中让自定义帐户像 Google/LinkedIn/Facebook 一样显示?

通过从 RawContacts 过滤 account_type 列来显示联系人

Android原生联系人应用程序删除每个帐户联系人

删除父帐户时如何防止联系子删除?