android - 如何在android中以编程方式删除联系人

标签 android android-contacts android-contentresolver

我尝试使用以下代码删除指定号码的联系人:

private void removeContact(Context context, String phone) {
    //context.getContentResolver().delete(Contacts.Phones.CONTENT_URI, phone, null);
    context.getContentResolver().delete(Contacts.Phones.CONTENT_URI,
          Contacts.PhonesColumns.NUMBER+"=?", new String[] {phone});
}

但我得到了这个异常(exception):

java.lang.UnsupportedOperationException: Cannot delete that URL: content://contacts/phones
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:130)
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:110)
    at android.content.ContentProviderProxy.delete(ContentProviderNative.java:362)
    at android.content.ContentResolver.delete(ContentResolver.java:386)

您能告诉我如何解决我的问题吗?

谢谢。

最佳答案

要删除所有联系人,请使用以下代码:

ContentResolver cr = getContentResolver();
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
            null, null, null, null);
    while (cur.moveToNext()) {
        try{
            String lookupKey = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
            Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
            System.out.println("The uri is " + uri.toString());
            cr.delete(uri, null, null);
        }
        catch(Exception e)
        {
            System.out.println(e.getStackTrace());
        }
    }

要删除任何特定联系人,请修改查询

cr.delete(uri, null, null);

希望对你有帮助!

关于android - 如何在android中以编程方式删除联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/527216/

相关文章:

android - 是否可以使用 robolectric 将 MediaStore 替换为测试替身?

android - 注册内容观察者

java - 使用 ContentResolver 更新联系人组时更新不起作用

android - BCM4339 的 Nexus 5 无线驱动程序

android - LayoutInflater View 未拉伸(stretch)到 match_parent

android - Azure SignatureHash 拒绝来自 debug.keystore 的 Base64 编码 SHA1 哈希

android - 如何使用google contacts api以编程方式将手机联系人同步到android中的gmail

android - 检索系统默认的 Android 联系人图片

android - Fragments 中的 ListView 空点异常

Android:使用查找键管理联系人