Класс CallStatistics
(Sailfish::Mdm::CallStatistics)
Класс CallStatistics предоставляет доступ к статистике телефонных вызовов. Подробнее…
Заголовочный файл: | #include <mdm-callstatistics.h> |
Публичные типы
- class Filter
- class Result
- enum CallType { AnyCallType, OutgoingCall, MissedCall, IncomingCall }
- enum TimeInterval { NoTimeInterval, Yearly, Monthly, Weekly, Daily }
Публичные методы
- CallStatistics(QObject *parent = 0)
- ~CallStatistics()
- void search(const Sailfish::Mdm::CallStatistics::Filter &filter)
Сигналы
- void searchFinished(bool success, const QList<Sailfish::Mdm::CallStatistics::Result> &results)
Подробное описание
Класс CallStatistics предоставляет доступ к статистике телефонных вызовов.
Для использования данного класса в qmake-настройки проекта клиента следует добавить следующее:
CONFIG += link_pkgconfig
PKGCONFIG += sailfishmdm
и затем #include <mdm-callstatistics.h>
.
Пример использования:
#include <mdm-callstatistics.h>
using namespace Sailfish::Mdm;
void printCallStatistics(QObject *parent)
{
CallStatistics filter;
filter.callType = CallStatistics::MissedCall;
filter.start = QDateTime(QDate(2000, 1, 1));
CallStatistics *stats = new CallStatistics(parent);
stats->search(filter);
QString intervalFormat;
switch (filter.timeInterval) {
case CallStatistics::NoTimeInterval:
break;
case CallStatistics::Yearly:
intervalFormat = "yyyy:";
break;
case CallStatistics::Monthly:
intervalFormat = "yyyy MMM:";
break;
case CallStatistics::Weekly:
intervalFormat = "yyyy-MM-ddd начало недели:";
break;
case CallStatistics::Daily:
intervalFormat = "yyyy-MM-ddd:";
break;
}
QObject::connect(stats, &CallStatistics::searchFinished, [stats, &intervalFormat](bool success, const QList<Sailfish::Mdm::CallStatistics::Result> &results) {
if (success) {
for (const CallStatistics::Result &result : results) {
qInfo() << result.when.toString(intervalFormat) << result.callCount << "вызовы";
}
} else {
qInfo() << "Не удалось получить статистику вызовов!";
}
});
}
Следует обратить внимание, что на текущий момент API предоставляет статистику только по сотовым вызовам.
Описание типов класса
enum CallStatistics::CallType
Типы телефонных вызовов для использования в классе Filter.
Константа | Значение | Описание |
---|---|---|
Sailfish::Mdm::CallStatistics::AnyCallType |
0 |
Любой тип телефонных вызовов |
Sailfish::Mdm::CallStatistics::OutgoingCall |
1 |
Исходящие телефонные вызовы |
Sailfish::Mdm::CallStatistics::MissedCall |
2 |
Пропущенные телефонные вызовы |
Sailfish::Mdm::CallStatistics::IncomingCall |
3 |
Принятые телефонные вызовы |
enum CallStatistics::TimeInterval
Временной интервал, используемый для группировки результатов поиска.
Применяется для результатов поиска, полученный в результате испускания сигнала searchFinished(). После установки интервала каждый элемент в списке представляет собой статистику звонков за день, месяц или год, соответственно.
Константа | Значение | Описание |
---|---|---|
Sailfish::Mdm::CallStatistics::NoTimeInterval |
0 |
Результаты поиска не группируются. Список с результатами будет состоять из одной записи |
Sailfish::Mdm::CallStatistics::Yearly |
1 |
Группировка результатов по годам |
Sailfish::Mdm::CallStatistics::Monthly |
2 |
Группировка результатов по месяцам |
Sailfish::Mdm::CallStatistics::Weekly |
3 |
Группировка результатов по номеру недели |
Sailfish::Mdm::CallStatistics::Daily |
4 |
Группировка результатов по дням |
Например, если значением Filter::start является 1 июля 2000, а значением Filter::end — 30 июня 2002, список результатов поиска будет включать:
- Для константы
Yearly
— 3 записи: с 2000.07.01 по 2000.12.31, с 2001.01.01 по 2001.12.31 и с 2002.01.01 по 2002.06.30; - Для константы
Monthly
— 24 записи: по одной на каждый месяц между началом и концом временного интервала (включительно); - Для константы
Weekly
— 107 записей: по одной на каждую неделю между началом и концом временного интервала (включительно), где каждая полная неделя начинается с понедельника. Из-за дней недели, выпадающих на начало и конец временного интервала, первая и последняя записи в списке образуют неполные недели: первая запись охватывает интервал с 2000.07.1 по 2007.07.04, а последняя — интервал с 2002.06.25 по 2002.06.30; - Для константы
Daily
— 701 запись: по одной на каждый день между началом и концом временного интервала (включительно).
Записи формируются для каждого временного интервала вне зависимости от количества звонков в это день/месяц/год.
Описание методов класса
CallStatistics::CallStatistics(QObject *parent = 0)
Конструктор для класса CallStatistics с родительским элементом, указанным в параметре parent.
CallStatistics::~CallStatistics()
Деструктор для класса CallStatistics.
void CallStatistics::search(const Sailfish::Mdm::CallStatistics::Filter &filter)
Получает количество телефонных вызовов, удовлетворяющее критерию, заданному в параметре filter.
В настоящий момент поддерживаются только сотовые вызовы.
[signal] void CallStatistics::searchFinished(bool success, const QList<Sailfish::Mdm::CallStatistics::Result> &results)
Испускается по завершении поиска, выполненного в результате вызова метода search().
Значением параметра success является true, если вызов метода был выполнен успешно. Параметр results содержит список результатов поиска.