Ril
Разработанный на основе фреймворка Hardware Driver Foundation (HDF) драйвер Ril скрывает аппаратные различия и предоставляет API для сервисов верхнего уровня, таких как совершение вызовов, отправка SMS-сообщений и активация SIM-карт.
Модуль драйвера Ril содержит определения и код реализации интерфейсов аппаратного драйвера Ril (HDI) и предоставляет возможность вызова API драйвера телефонии для верхнего уровня. HDI реализуют обработку услуг, связанных со следующими сервисами:
— вызов; — SIM-карта; — SMS/MMS; — радио; — сотовая связь.
Рисунок 1. Архитектура модуля драйвера Ril
Структура каталогов исходного кода выглядит следующим образом:
/drivers/peripheral/ril
├── figures # Файлы ресурсов Readme
├── interfaces # Предоставляемые API драйверов для сервисов верхнего слоя
│ └── include # Экспонированные внешне API
— Язык программирования: C++. — Программные ограничения: этот модуль должен работать с модулем адаптера Ril (ril_adapter). — Аппаратные ограничения: устройство должно быть оснащено модемом, способным к независимой сотовой связи.
Драйвер Ril предоставляет API возможностей, которые могут быть напрямую вызваны слоем фреймворка. Основные функции следующие: вызов, SIM-карта, SMS/MMS, сотовая связь и отчётность о событиях. В следующей таблице перечислены API, предоставляемые модулем драйвера Ril.
Таблица 1. API HDI Ril
API | Описание |
---|---|
int32_t SetCallback(const sptr &rilCallback) | Устанавливает IRil callback. |
int32_t Dial(int32_t slotId, int32_t serialId, const DialInfo &dialInfo) | Совершает вызов. slotId указывает на идентификатор слота карты, serialId указывает серийный идентификатор запроса, а dialInfo указывает информацию о наборе номера. |
int32_t Answer(int32_t slotId, int32_t serialId) | Отвечает на вызов. slotId указывает идентификатор слота карты, а serialId — серийный идентификатор запроса. |
int32_t SendGsmSms(int32_t slotId, int32_t serialId, const GsmSmsMessageInfo &gsmSmsMessageInfo) | Отправляет GSM SMS-сообщение. slotId указывает идентификатор слота карты, serialId указывает серийный идентификатор запроса, а gsmSmsMessageInfo указывает информацию об SMS-сообщении. |
int32_t SetActiveSim(int32_t slotId, int32_t serialId, int32_t index, int32_t enable) | Активирует или деактивирует SIM-карту. slotId указывает идентификатор слота карты, serialId указывает серийный идентификатор запроса, index указывает значение индекса информации о SIM-карте, а enable указывает статус активации. |
int32_t GetOperatorInfo(int32_t slotId, int32_t serialId) | Запрашивает название оператора. slotId указывает идентификатор слота карты, а serialId — серийный идентификатор запроса. |
int32_t ActivatePdpContext(int32_t slotId, int32_t serialId, const DataCallInfo &dataCallInfo) | Активирует контекст PDP. slotId указывает идентификатор слота карты, а dataCallInfo — информацию о сервисе данных. |
int32_t SetRadioState(int32_t slotId, int32_t serialId, int32_t fun, int32_t rst) | Устанавливает состояние радио. slotId указывает идентификатор слота карты, serialId указывает серийный идентификатор запроса, fun указывает режим функции, а rst указывает, следует ли выполнить сброс. |
Для получения подробной информации об API обратитесь к drivers_interface_ril.
В этом разделе в качестве примера используется реализация услуги вызова.
Пример кода:
#include "V1_1/iril.h"
/* Ril callback class */
class RilCallback : public HDI::Ril::V1_1::IRilCallback {
int32_t DialResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
int32_t
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )