1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openharmony-telephony_call_manager

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Менеджер Звонков

Введение

Модуль Менеджер Звонков в основном управляет тремя типами звонков: с коммутацией по каналу (CS), мультимедийной подсистемой IP (IMS) и звонками через интернет (OTT). Он отвечает за выделение необходимых аудио- и видеоресурсов для звонка и разрешение конфликтов в многоканальном звонке. Модуль состоит из шести частей: взаимодействие с пользовательским интерфейсом (CallServiceAbility), управление службами (CallManagerService), управление звонками (Call Manager), управление аудио (Audio Manager), управление видео (Video Manager) и управление Bluetooth (Bluetooth Manager).1. CallServiceAbility: Реализует взаимодействие с пользовательским интерфейсом звонка, например, запуск интерфейса цифровой клавиатуры для набора номера и отчет о статусе входящего звонка в интерфейсе. 2. CallManagerService: запускает и инициализирует Call Manager. 3. Call Manager: обрабатывает операции исходящих звонков (например, набор, ответ, завершение) и статус входящих звонков (например, статус входящего звонка и статус ожидания звонка), а также разрешает конфликты, возникающие во время звонка. 4. Audio Manager: выделяет аудиоресурсы для звонка и освобождает ресурсы после завершения звонка. Эта часть зависит от мультимедийной подсистемы и требует вызова её API для выполнения аудио-операций. 5. Video Manager: выделяет видеоресурсы для звонка и освобождает ресурсы после завершения звонка. Эта часть зависит от мультимедийной подсистемы и требует вызова её API для выполнения видео-операций. 6. Bluetooth Manager: выделяет ресурсы Bluetooth для звонка и освобождает ресурсы после завершения звонка. Кроме того, эта часть обрабатывает операции звонков, инициированные Bluetooth-устройствами, такие как ответ и завершение звонков.На следующем рисунке показана архитектура модуля Менеджер Звонков.

Рисунок 1 Архитектура модуля Менеджер Звонков

Структура каталогов```

/base/telephony/call_manager ├─ figures # Иллюстрации файлов readme ├─ frameworks # Фреймворки │ ├─ js # JS код │ └─ native # Нативный код ├─ interfaces # API │ ├─ innerkits # Внутренние API │ └─ kits # Внешние API (например, JS API) ├─ sa_profile # Профиль SA ├─ services # Код сервисов │ ├─ audio # Управление аудио │ ├─ bluetooth # Управление вызовами через Bluetooth │ ├─ call # Сервис вызовов │ ├─ call_manager_service # Сервис Call Manager │ ├─ call_report # Отчет о статусе вызова │ ├─ call_setting # Настройки вызова │ ├─ telephony_interaction # Взаимодействие с ядром телефонии │ └─ video # Код управления видео ├─ test # Тестовый код │ ├─ fuzztest # Фаззинг-тест │ ├─ mock # Симуляционный тест │ └─ unittest # Юнит-тест └─ utils # Утилиты

-   В терминах программного обеспечения, этот модуль должен работать с подсистемой безопасности, подсистемой мультимедиа и подсистемой интеллектуального софт-баса (модуль Bluetooth), а также с основной службой телефонии (core\_service) и модулем сотовых вызовов (cellular\_call).
-   В терминах аппаратного обеспечения, устройство должно быть оборудовано динамиком или наушником, а также гарнитурой.## Доступные API<a name="section136mcpsimp"></a>**Таблица 1** Внешние API, предоставляемые модулем Call Manager<a name="table137mcpsimp"></a>
 <table><thead align="left"><tr id="row143mcpsimp"><th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.1"><p id="entry144mcpsimpp0"><a name="entry144mcpsimpp0"></a><a name="entry144mcpsimpp0"></a>Описание</p>
 </th>
 <th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.2"><p id="entry145mcpsimpp0"><a name="entry145mcpsimpp0"></a><a name="entry145mcpsimpp0"></a>Описание</p>
 </th>
 <th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.3"><p id="entry146mcpsimpp0"><a name="entry146mcpsimpp0"></a><a name="entry146mcpsimpp0"></a>Необходимое разрешение</p>
 </th>
 </tr>
 </thead>
 <tbody><tr id="row147mcpsimp"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p143312519577"><a name="p143312519577"></a><a name="p143312519577"></a>function dial(phoneNumber: string, options: DialOptions, callback: AsyncCallback&lt;boolean&gt;): void;</p>
 </td>
 <td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="entry149mcpsimpp0"><a name="entry149mcpsimpp0"></a><a name="entry149mcpsimpp0"></a>Выполняет операции набора номера.</p>
 </td>
 <td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="entry150mcpsimpp0"><a name="entry150mcpsimpp0"></a><a name="entry150mcpsimpp0"></a>ohos.permission.PLACE_CALL</p>
 </td>
 </tr>
 </tbody>
 <tbody><tr id="row147mcpsimp"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p143312519577"><a name="p143312519577"></a><a name="p143312519577"></a>function isImsSwitchEnabledSync(slotId: number): boolean;</p>
 </td>
 <td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="entry149mcpsimpp0"><a name="entry149mcpsimpp0"></a><a name="entry149mcpsimpp0"></a>Проверяет, включена ли VoLTE HD-звонки (параметр slotId представляет собой ID SIM-карты, где 0 обозначает карту 1, а 1 — карту 2).</p>
 </td>
 <td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="entry150mcpsimpp0"><a name="entry150mcpsimpp0"></a><a name="entry150mcpsimpp0"></a>ohos.permission.READ_PHONE_STATE</p>
 </td>
 </tr>
 </tbody>
</table>3 "><p id="entry150mcpsimpp0"><a name="entry150mcpsimpp0"></a><a name="entry150mcpsimpp0"></a>ohos. permission. PLACE_CALL</p>
 </td>
 </tr>
 </tbody>
 </table>**Таблица 2** Параметры API Dial<a name="table18488202215170"></a>
<table><thead align="left"><tr id="row748952217179"><th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.1"><p id="p1948942271710"><a name="p1948942271710"></a><a name="p1948942271710"></a>Параметр</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.2"><p id="p1648972215173"><a name="p1648972215173"></a><a name="p1648972215173"></a>Описание</p>
</th>
</tr>
</thead>
<tbody><tr id="row749092213171"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p14901222191720"><a name="p14901222191720"></a><a name="p14901222191720"></a>phoneNumber: string</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p34906228170"><a name="p34906228170"></a><a name="p34906228170"></a>Номер телефона</p>
</td>
</tr>
<tr id="row549011221176"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p44902223175"><a name="p44902223175"></a><a name="p44902223175"></a>options: DialOptions</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p11490162241718"><a name="p11490162241718"></a><a name="p11490162241718"></a>Параметры подключения (Для подробностей см. следующую таблицу.)</p>
</td>
</tr>
<tr id="row149072216176"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p5490152211715"><a name="p5490152211715"></a><a name="p5490152211715"></a>callback: AsyncCallback&lt;boolean&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p649002291718"><a name="p649002291718"></a><a name="p649002291718"></a>Результат асинхронного выполнения. Значение <strong id="b1400386820"><a name="b1400386820"></a><a name="b1400386820"></a>true</strong> указывает на успешное подключение, а значение <strong id="b022154719814"><a name="b022154719814"></a><a name="b022154719814"></a>false</strong> указывает на неудачное подключение.</p>
</td>
</tr>
</tbody>
</table>**Таблица 3** Описание параметра options: DialOptions<a name="table1322739190"></a>
<table><thead align="left"><tr id="row193221031194"><th class="cellrowborder" valign="top" width="20%" id="mcps1.2.6.1.1"><p id="p203224311917"><a name="p203224311917"></a><a name="p203224311917"></a>Параметр</p>
</th>
<th class="cellrowborder" valign="top" width="20%" id="mcps1.2.6.1.2"><p id="p1639614810198"><a name="p1639614810198"></a><a name="p1639614810198"></a>Тип</p>
</th>
<th class="cellrowborder" valign="top" width="20%" id="mcps1.2.6.1.3"><p id="p113221730191"><a name="p113221730191"></a><a name="p113221730191"></a>Описание</p>
</th>
<th class="cellrowborder" valign="top" width="20%" id="mcps1.2.6.1.4"><p id="p153221330197"><a name="p153221330197"></a><a name="p153221330197"></a>Обязательный</p>
</th>
<th class="cellrowborder" valign="top" width="20%" id="mcps1.2.6.1.5"><p id="p632220310199"><a name="p632220310199"></a><a name="p632220310199"></a>Значение по умолчанию</p>
</th>
</tr>
</thead>
<tbody><tr id="row123238311920"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.1 "><p id="p932310311197"><a name="p932310311197"></a><a name="p932310311197"></a>extras</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.2 "><p id="p73966801911"><a name="p73966801911"></a><a name="p73966801911"></a>boolean</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.3 "><p id="p19821612162118"><a name="p19821612162118"></a><a name="p19821612162118"></a><strong id="b345117841310"><a name="b345117841310"></a><a name="b345117841310"></a>false</strong>: аудио; <strong id="b1701410181319"><a name="b1701410181319"></a><a name="b1701410181319"></a>true</strong>: видео</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.4 "><p id="p33231931191"><a name="p33231931191"></a><a name="p33231931191"></a>Нет</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.5 "><p id="p12323232197"><a name="p12323232197"></a><a name="p12323232197"></a>false</p>
</td>
</tr>
</tbody>
</table>## Руководство по использованию<a name="section163mcpsimp"></a>### Вызов API dial для совершения звонка<a name="section113291522113518"></a>

1.  Сформируйте параметры  **phoneNumber**  и  **options**.
2.  Вызовите API  **Dial**  в режиме обратного вызова или Promise.
3.  Получите результат звонка. API  **Dial**  работает в асинхронном режиме. Результат звонка возвращается через обратный вызов.

    ```
    import call from "@ohos.telephony.call";
    
    let phoneNumber = "12312312312";
    
    // Вызов API в режиме обратного вызова.
    call.dial(phoneNumber, {extras: false}, (err, value) => {
      if (err) {
        // Если вызов API не удался, err не пуст.
        console.error(`не удалось совершить звонок, так как ${err.message}`);
        return;
      }
      // Если вызов API удался, err пуст.
      console.log(`успешно совершили звонок: ${value}`);
    });
    
    // Вызов API в режиме Promise.
    let promise = call.dial(phoneNumber, {extras: false});
    promise.then((value) => {
      // Вызов API удался.
      console.log(`успешно совершили звонок: ${value}`);
    }).catch((err) => {
      // Вызов API не удался.
      console.error(`не удалось совершить звонок, так как ${err.message}`);
    });
    ```

### Проверка, включена ли VoLTE HD-звонки<a name="section113291522113520"></a>

1. Вы можете проверить, включена ли служба VoLTE HD-звонков, вызвав isImsSwitchEnabledSync.

2. Этот интерфейс является синхронным, и результат выполнения будет возвращен из isImsSwitchEnabledSync.

import call from "@ohos.telephony.call";

try { // Вызов интерфейса [синхронный метод] let isEnabled: boolean = data.isImsSwitchEnabledSync(0); // Вызов интерфейса успешен console.log(isImsSwitchEnabledSync успешен : ${isEnabled}); } catch (error) { // Вызов интерфейса неудачен console.log(isImsSwitchEnabledSync неудачен);
}


[Telephony](https://gitee.com/openharmony/docs/blob/master/en/readme/telephony.md)

**telephony_call_manager**

[telephony_core_service](https://gitee.com/openharmony/telephony_core_service/blob/master/README.md)

[telephony_cellular_call](https://gitee.com/openharmony/telephony_cellular_call/blob/master/README.md)[telephony_state_registry](https://gitee.com/openharmony/telephony_state_registry/blob/master/README.md)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Управление всеми типами соединений вызовов. Развернуть Свернуть
C++ и 3 других языков
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/openharmony-telephony_call_manager.git
git@api.gitlife.ru:oschina-mirror/openharmony-telephony_call_manager.git
oschina-mirror
openharmony-telephony_call_manager
openharmony-telephony_call_manager
master