3

仕事をしているように見えるすべての連絡先を削除する方法は次のとおりです。

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

すべての連絡先を削除する他の方法を探しています。すべての連絡先テーブル (連絡先、生の連絡先、データ) をクリアする最善の方法は何ですか?

4

1 に答える 1

0

以下のメソッドを呼び出す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" />
于 2015-03-27T13:19:49.243 に答える