如何删除 android 2.2 上的联系人?

Posted

技术标签:

【中文标题】如何删除 android 2.2 上的联系人?【英文标题】:How to delete the contacts on android 2.2? 【发布时间】:2011-05-19 04:01:57 【问题描述】:

我需要删除重复的联系人,然后在 android 2.2 上插入新联系人。

如何做到这一点?

给我任何示例代码或网站。

【问题讨论】:

【参考方案1】:

要从 android 中删除内容项,您需要一个内容 URI 和一些删除条件。

每种内容类型都有自己的内容 URI。如果您正在编写联系人同步适配器,那么您可能需要使用 ContactsContract.RawContacts.CONTENT_URI。

您还需要一个 ContentResolver - 一个与内容提供者通信的接口(在此接口中定义了插入、更新和删除等操作)。您可以通过从应用程序上下文中调用 getContentResolver 来获取 ContentResolver。

所以,这里是应该删除所有联系人的代码的 sn-p(虽然没有测试过):

ContentCesolver cr = getContentResolver();
URI uri = RawContacts.CONTENT_URI;
cr.delete(uri, null, null);

请注意,当您使用 RawContacts.CONTENT_URI 时,不会删除联系人项目。相反,它仅被标记为删除。要完全删除它,您应该将 ContactsContract.CALLER_IS_SYNCADAPTER 参数添加到您的 URI:

uri.buildUpon()
   .appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER,
         "true").build()

更多解释请阅读official docs about content providers。

【讨论】:

为了删除多个特定的联系人(例如,给定他们的联系人键),可以使用 getContentResolver().applyBatch 吗?或者我应该创建一个有点复杂的删除操作?哪个更好,或者各自的优缺点是什么? 对不起,我不知道。【参考方案2】:

也许这会对你有所帮助,

How to remove a contact programmatically in android

【讨论】:

那个话题已经过时了。 TS问2.2左右

以上是关于如何删除 android 2.2 上的联系人?的主要内容,如果未能解决你的问题,请参考以下文章

QQ通讯录2.2 android版 怎么给联系人分组??大神们帮帮忙

如何以编程方式在android 10中恢复已删除的联系人

如何从 android 手机中获取已删除的联系人以及如何恢复它

在我的意图android中选择联系人后如何删除联系人

如何在android上的listview中快速加载联系人

如何获取所有 android 联系人但没有 SIM 卡上的联系人