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

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

如何做到这一点?

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

【问题讨论】:

    标签: android contacts


    【解决方案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左右
    猜你喜欢
    • 2011-10-29
    • 2011-07-20
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 2021-02-08
    • 2013-11-18
    相关资源
    最近更新 更多