android以编程方式删除特定联系人

标签 android

现在,这段代码可以正常工作 ops.add(ContentProviderOperation .newDelete(ContactsContract.Data.CONTENT_URI) .withSelection(ContactsContract.Data.RAW_CONTACT_ID+"=?",new String[] {sid}).build());

但是它创建了未知记录并且似乎是已删除的联系人。我需要一些东西才能使其正常工作吗?

最佳答案

我是这样实现的:

public static boolean deleteContact(Context ctx, String phone, String name) {
    Uri contactUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phone));
    Cursor cur = ctx.getContentResolver().query(contactUri, null, null, null, null);
    try {
        if (cur.moveToFirst()) {
            do {
                if (cur.getString(cur.getColumnIndex(PhoneLookup.DISPLAY_NAME)).equalsIgnoreCase(name)) {
                    String lookupKey = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
                    Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
                    ctx.getContentResolver().delete(uri, null, null);
                    return true;
                }

            } while (cur.moveToNext());
        }

    } catch (Exception e) {
        System.out.println(e.getStackTrace());
    }
    return false;
}

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

相关文章:

具有表面 View 肖像的 Android 相机

java - getIntent() 在第一个主要 Activity 中返回什么?

android - 如何同时滚动 recyclerView 和底部按钮

android - Jquery 移动中的多个选择小部件在 Android 2.3 中不起作用

android - android AudioTrack play() 和 write() 方法之间的区别?

android - 如何显示邮件中的附加图像

java - 替换 Arraylist<HashMap> 位置

android - EditText 改变样式

android - 当显示键盘时,我的 Android AlertDialog 没有向上移动

android - 如何在 Android 中加载高分辨率位图?