3

特定の番号のすべての通話履歴を削除しようとしています。

try {
    String strNumberOne[] = {number};
    Cursor cursor = getContentResolver().query(CallLog.Calls.CONTENT_URI, null, CallLog.Calls.NUMBER + "=? ", strNumberOne, "");
    boolean bol = cursor.moveToFirst();
    if (bol) {
        do {
            int idOfRowToDelete = cursor.getInt(cursor.getColumnIndex(CallLog.Calls._ID));                            
            getContentResolver().delete(Uri.withAppendedPath(CallLog.Calls.CONTENT_URI, String.valueOf(idOfRowToDelete)), "", null);
        } while (cursor.moveToNext());
    }
} catch (Exception ex) {
    System.out.print("Exception here ");
}

LIKEcallLogに保存されたmobNumが+916666666666であり、番号6666666666を渡しているため、クエリを実行したいので、一致しません。誰かが私がこの問題を克服するのを手伝ってくれる?

4

2 に答える 2

3

このコードを試して、履歴から特定の番号を削除してください

String number="4666";//any number
Uri CALLLOG_URI = Uri.parse("content://call_log/calls"); 
context.getContentResolver().delete(CALLLOG_URI,CallLog.Calls.NUMBER +"=?",new String[]{number});

これを行うことにより、ユーザー名で通話履歴を削除することもできます

context.getContentResolver().delete(CALLLOG_URI,CallLog.Calls.CACHED_NAME +"=?",new String[]{name});
于 2015-06-26T04:07:50.550 に答える
1

次のリンクを確認してください。

于 2012-12-24T10:02:57.253 に答える