Как получить доступ к журналу звонков в ОС Android на java

Рейтинг: 1Ответов: 1Опубликовано: 19.10.2014

Задача: получить список/массив всех звонков с номером звонившего, датой и временем разговора и проч. информацией.

Для СМС это делается так:

Uri uriSms = Uri.parse("content://sms/inbox");
Cursor c = context.getContentResolver().query(uriSms, null,null,null,null);

А как для звонков?

Ответы

▲ 1Принят

Для доступа к истории звонков используется content provider.

String[] projection = new String[]{
        CallLog.Calls._ID,
        CallLog.Calls.DATE,
        CallLog.Calls.NUMBER,
        CallLog.Calls.CACHED_NAME,
        CallLog.Calls.DURATION,
        CallLog.Calls.TYPE
};
String where = "";

Cursor cursor = context.getContentResolver().query(
        CallLog.Calls.CONTENT_URI,
        projection,
        where,
        null,
        null
);

if (cursor.moveToFirst()) {
    do {
        long _id = cursor.getLong(cursor.getColumnIndex(CallLog.Calls._ID));
        String number = cursor.getString(cursor.getColumnIndex(CallLog.Calls.NUMBER));
        long date = cursor.getLong(cursor.getColumnIndex(CallLog.Calls.DATE));
    } while (cursor.moveToNext());
}
if (!cursor.isClosed()) {
    cursor.close();
}