хочу получить историю журнала вызовов на сегодня, вчера, за последние семь дней и за последние 30 дней, а также хочу показать общую продолжительность входящих и исходящих вызовов этого конкретного номера.
предположим, что abc имеет 3 исходящих и 1 входящий вызов. я должен получить общую продолжительность этих вызовов.
просто дайте мне знать, можем ли мы получить продолжительность и журнал вызовов с помощью предложения курсора GroupBy или ORDER BY вместо того, чтобы зацикливаться и добавлять продолжительность. Просто дайте мне грубую структуру для лучшего решения и может работать эффективно.
String[] whereValue=null;
Calendar calendar = Calendar.getInstance();
String currentDate = String.valueOf(calendar.getTimeInMillis());
switch (period) {
case DAY:
whereValue = new String[]{getTimeFrom(period),currentDate};
break;
case YESTERDAY:
whereValue = new String[]{getTimeFrom(period),currentDate};
break;
case WEEK:
whereValue = new String[]{getTimeFrom(period),currentDate};
break;
case MONTH:
whereValue = new String[]{getTimeFrom(period),currentDate};
break;
default:
Log.d(Utils.LOG_TAG, "Error:");
}
String strOrder = android.provider.CallLog.Calls.DATE + " DESC";
Uri callUri = Uri.parse("content://call_log/calls");
Cursor cur = context.getContentResolver().query(callUri, null, android.provider.CallLog.Calls.DATE+" BETWEEN ? AND ?", whereValue, strOrder);
String callNumber = cur.getString(cur
.getColumnIndex(android.provider.CallLog.Calls.NUMBER));
String callName = cur
.getString(cur
.getColumnIndex(android.provider.CallLog.Calls.CACHED_NAME));
String callType = cur.getString(cur
.getColumnIndex(android.provider.CallLog.Calls.TYPE));
String dir = null;
int dircode = Integer.parseInt(callType);
switch (dircode) {
case CallLog.Calls.OUTGOING_TYPE:
case CallLog.Calls.INCOMING_TYPE:
break;
}
String duration = cur.getString(cur
.getColumnIndex(android.provider.CallLog.Calls.DURATION));
приведенный выше код даже не работает для получения журнала вызовов между датой и датой. любая помощь?