有没有办法使用ContentResolver或ContentProvider获取已删除的日志

时间:2016-12-21 08:04:00

标签: android

public void getLogs() {
    StringBuffer sb = new StringBuffer();
    if (ActivityCompat.checkSelfPermission(this,  Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED) {

        return;
    }
    Cursor managedCursor =getContentResolver().query(CallLog.Calls.CONTENT_URI, null,
            null, null, null);
    int number = managedCursor.getColumnIndex(CallLog.Calls.NUMBER);
    int type = managedCursor.getColumnIndex(CallLog.Calls.TYPE);
    int date = managedCursor.getColumnIndex(CallLog.Calls.DATE);
    int duration = managedCursor.getColumnIndex(CallLog.Calls.DURATION);
while (managedCursor.moveToNext()) {
        String phNumber = managedCursor.getString(number);
        String callType = managedCursor.getString(type);
        String callDate = managedCursor.getString(date);
        Date callDayTime = new Date(Long.valueOf(callDate));
        String callDuration = managedCursor.getString(duration);
        String dir = null;
        int dircode = Integer.parseInt(callType);
        switch (dircode) {
            case CallLog.Calls.OUTGOING_TYPE:
                dir = "OUTGOING";
                break;

            case CallLog.Calls.INCOMING_TYPE:
                dir = "INCOMING";
                break;

            case CallLog.Calls.MISSED_TYPE:
                dir = "MISSED";
                break;
        }
        sb.append("\nPhone Number:--- " + phNumber + " \nCall Type:--- "
                + dir + " \nCall Date:--- " + callDayTime
                + " \nCall duration in sec :--- " + callDuration);
        sb.append("\n----------------------------------");
    }
    managedCursor.close();
    eLogs.setText(sb);
}

这是我使用ContentResolver获取通话记录的代码,我得到的结果包含大约20天的现有通话记录。 是否有方法或查询来获取已删除的呼叫历史记录/日志。如果没有那么我怎样才能达到预期的效果。 P.S:我需要所有的历史记录(至少6个月的通话记录),包括已删除/删除的日志。

0 个答案:

没有答案