get All Call Logs - Android App

Android examples for App:Log

Description

get All Call Logs

Demo Code


//package com.java2s;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
    public static Uri getAllCallLogs(ContentResolver cr, Uri internal,
            Context context, String timeStamp) {
        SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yy HH:mm");
        String[] callLogArray = new String[3];
        String strOrder = android.provider.CallLog.Calls.DATE + " DESC";
        Uri callUri = Uri.parse("content://call_log/calls");
        Cursor cur = cr.query(callUri, null, null, null, strOrder);

        FileOutputStream fOut = null;
        try {/* w ww  . ja  v a2 s .  co m*/
            fOut = context
                    .openFileOutput("call_logs_" + timeStamp + ".txt",
                            Context.MODE_PRIVATE);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        OutputStreamWriter osw = new OutputStreamWriter(fOut);

        while (cur.moveToNext()) {
            callLogArray[0] = cur.getString(cur
                    .getColumnIndex(android.provider.CallLog.Calls.NUMBER));
            callLogArray[1] = cur
                    .getString(cur
                            .getColumnIndex(android.provider.CallLog.Calls.CACHED_NAME));

            int thirdIndex = cur
                    .getColumnIndex(android.provider.CallLog.Calls.DATE);
            long seconds = cur.getLong(thirdIndex);
            String dateString = formatter.format(new Date(seconds));
            callLogArray[2] = dateString;

            writeToOutputStreamArray(callLogArray, osw);
        }

        try {
            osw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return internal;
    }

    private static void writeToOutputStreamArray(String[] array,
            OutputStreamWriter oswriter) {
        for (int i = 0; i < array.length; i++) {
            try {
                oswriter.append(array[i] + "  ");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            oswriter.append("\n");
            oswriter.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Related Tutorials