在Android中以编程方式从呼叫日志中删除特定号码

时间:2014-09-06 18:28:26

标签: android android-contentprovider android-contentresolver calllog

我想从通话记录中删除特定号码。数字是这样的 - " #6666#"。

我这样做:

String queryString = "NUMBER=" + number;

    try {
        context.getContentResolver().delete(CallLog.Calls.CONTENT_URI,
                queryString, null);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

当我使用*#之前和之后并出现运行时异常时,会出现主要问题。没有这一切,一切正常。

有人能为我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

确保您在manifest.xml中具有以下权限:

<uses-permission android:name="android.permission.READ_CALL_LOG" /> 
<uses-permission android:name="android.permission.WRITE_CALL_LOG" />

删除特定号码的通话记录,请尝试:

public void DeleteCallLogByNumber(String strNumber ) {   
    Cursor cursor = getContentResolver().query(CallLog.Calls.CONTENT_URI, null, CallLog.Calls.NUMBER + " = ? ", strNumber , "");
    int idOfRowToDelete= cursor.getInt(cursor.getColumnIndex(CallLog.Calls._ID));
    getContentResolver().delete(Uri.withAppendedPath(CallLog.Calls.CONTENT_URI, String.valueOf(idOfRowToDelete)), "", null);
    }  
}