Модуль управления вызовами в основном управляет тремя типами вызовов: циркуит-свитчен (CS), IP multimedia subsystem (IMS) и over the top (OTT) вызовами. Он отвечает за запрос аудио- и видеоресурсов для вызова и решение конфликтов при многоканальном вызове. Модуль состоит из шести частей: взаимодействие с пользовательским интерфейсом (CallServiceAbility), управление службой (CallManagerService), управление вызовами (Management of Calls), управление аудио (Management of Audio), управление видео (Management of Video) и управление Bluetooth (Management of Bluetooth).1. CallServiceAbility: реализует взаимодействие с пользовательским интерфейсом вызова, например, запуск интерфейса клавиатуры для набора номера и передачу состояния входящего вызова пользовательскому интерфейсу. 2. CallManagerService: запускает и инициализирует управление вызовами. 3. Управление вызовами: обрабатывает действия по исходящим вызовам (например, набор, принятие и завершение) и состояние входящих вызовов (например, состояние входящего вызова и состояние ожидания вызова), а также решает конфликты, возникающие во время вызова. 4. Управление аудио: запрашивает аудиоресурсы для вызова и освобождает эти ресурсы после завершения вызова. Эта часть зависит от мультимедийной подсистемы и требует вызова её API для выполнения операций, связанных с аудио. 5. Управление видео: запрашивает видеоресурсы для вызова и освобождает эти ресурсы после завершения вызова. Эта часть зависит от мультимедийной подсистемы и требует вызова её API для выполнения операций, связанных с видео. 6. Управление Bluetooth: запрашивает Bluetooth-ресурсы для вызова и освобождает эти ресурсы после завершения вызова. Кроме того, эта часть обрабатывает вызовы, инициированные Bluetooth-устройствами, такие как принятие и завершение вызова.Следующая диаграмма показывает архитектуру модуля управления вызовами.
Рисунок 1 Архитектура модуля управления вызовами
/base/телефония/manager_вызовов
├─ figures # Изображения README файлов
├─ frameworks # Фреймворки
│ ├─ js # Код на JavaScript
│ └─ native # Нативный код
├─ interfaces # API
│ ├─ innerkits # Внутренние API
│ └─ kits # Внешние API (например, JS API)
├─ профиль_sa # Профиль SA
├─ сервисы # Сервисный код
│ ├─ аудио # Управление аудио
│ ├─ блютуз # Управление вызовами через Bluetooth
│ ├─ вызов # Сервис вызова
│ ├─ сервис_менеджера_вызовов # Сервис менеджера вызовов
│ ├─ отчет_вызовов # Отчет о состоянии вызовов
│ ├─ настройка_вызовов # Настройка вызовов
│ ├─ взаимодействие_телефонии # Взаимодействие с основным сервисом телефонии
│ └─ видео # Код управления видео
├─ тест # Тестовый код
│ ├─ fuzztest # Тестирование на основе случайных данных
│ ├─ mock # Тестирование с использованием моков
│ └─ unittest # Единичные тесты
└─ utils # Инструменты
Результат асинхронного выполнения. Значение true указывает на успешное подключение, значение false указывает на неудачное подключение. |
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 в режиме промиса.
let promise = call.dial(phoneNumber, { extras: false });
promise.then((value) => {
// Вызов API прошел успешно.
console.log(`Успешно выполнен звонок: ${value}`);
}).catch((err) => {
// Вызов API провалился.
console.error(`Не удалось совершить звонок из-за ошибки: ${err.message}`);
});
Вы можете проверить, включен ли сервис VoLTE HD, вызывая метод isImsSwitchEnabledSync
.
Этот интерфейс является синхронным, и результат выполнения метода isImsSwitchEnabledSync
будет возвращен вместе с любыми связанными результатами выполнения.
import call from "@ohos.telephony.call";
try {
// Вызов интерфейса [метод Sync]
let isEnabled: boolean = call.isImsSwitchEnabledSync(0);
// Успешный вызов интерфейса
console.log(`isImsSwitchEnabledSync успешен: ${isEnabled}`);
} catch (error) {
// Неудачный вызов интерфейса
console.log(`isImsSwitchEnabledSync неудачен`);
}
```Представленный текст требует перевода следующих частей:
```markdown
## Вовлечённые репозитории
[Телефония](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)
Однако, поскольку нет конкретного текста внутри этих ссылок, который был бы нужен для перевода, то есть текст внутри ссылок не представлен здесь, то перевод невозможен без доступа к этим страницам.
Для того чтобы выполнить перевод, вам следует предоставить конкретный текст внутри этих ссылок. Если вы хотите, чтобы я извлёк текст из этих ссылок, это потребует доступа к интернету и времени для его извлечения.
Также стоит отметить, что названия репозиториев и ссылки остаются без изменений, так как они являются частью адреса и не требуют перевода.
Если вы хотите, чтобы я перевёл какие-то конкретные части текста, пожалуйста, предоставьте этот текст.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )