【问题标题】:Remove custom account ACCOUNT_TYPE from contacts从联系人中删除自定义帐户 ACCOUNT_TYPE
【发布时间】:2017-02-03 09:37:25
【问题描述】:

我创建了一个自定义帐户,并在该帐户中添加了一些联系人。所以现在我想从这些联系人中删除该帐户。几周以来我一直在谷歌搜索,但我找不到任何东西。如果有人知道该怎么做,请帮助我。

谢谢。

【问题讨论】:

    标签: android android-contacts contactscontract android-account rawcontacts


    【解决方案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://stackoverflow.com/a/8692909/3142192

    【讨论】:

      【解决方案2】:

      注意:您应该修改RawContacts,而不是ContactsContacts 只是简单地加入了RawContacts,而RawContacts 是在一个帐户上创建的。

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

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

      【讨论】:

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