android - 以编程方式删除所有联系人

标签 android contacts

似乎可以完成其工作的删除所有联系人方法是:

ContentResolver contentResolver = myActivity.getContentResolver();
Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null,  null, null);
while (cursor.moveToNext()) {
       String lookupKey = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
       Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
       contentResolver.delete(uri, null, null);
}

有没有办法调整它以删除 RawContacts 而不是联系人?像这样:

ContentResolver contentResolver = myActivity.getContentResolver();
    Cursor cursor = contentResolver.query(ContactsContract.RawContacts.CONTENT_URI, null, null, null, null);
    while (cursor.moveToNext()) {
        contentResolver.delete(ContactsContract.RawContacts.CONTENT_URI, null, null);
        }

我正在寻找其他方法来删除所有联系人。清除所有联系人表(联系人、原始联系人、数据)的最佳方法是什么?

最佳答案

在 for 循环中调用下面的方法,

这就是我们所需要的。 删除给定电话号码和姓名的联系人

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;
}

并提醒添加读/写联系人权限

<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />

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

相关文章:

iOS 9 |联系人框架

java - speech.speak 抛出空指针异常

如果用户无法触摸或使用设备,Android 会在 x 时间后自动启动应用程序

java - 删除 EditText 中的第二个点/逗号

java - 如何恢复联系方式?

java - 从联系人列表中获取电话号码

java - 从 Android 中的链接问题启动应用程序

android - 有什么好的 Android 社​​区翻译工具?

iphone - 如何通过phonegap打开iPhone应用程序

iphone - 获取联系人列表并检查联系人是否已安装类似WhatsApp的应用程序