Integrowanie programu TelecomManager z biblioteką interfejsu użytkownika
Biblioteka interfejsu użytkownika usług Azure Communication Services zapewnia wbudowaną obsługę programu TelecomManager. Deweloperzy mogą udostępnić własną konfigurację dla programu TelecomManager do użycia w bibliotece interfejsu użytkownika.
Z tego artykułu dowiesz się, jak poprawnie skonfigurować aplikację TelecomManager przy użyciu biblioteki interfejsu użytkownika w aplikacji.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Wdrożony zasób usług komunikacyjnych. Utwórz zasób usług komunikacyjnych.
- Token dostępu użytkownika umożliwiający włączenie klienta wywołania. Uzyskiwanie tokenu dostępu użytkownika.
- Opcjonalnie: ukończenie przewodnika Szybki start dotyczącego rozpoczynania pracy z zestawami biblioteki interfejsu użytkownika.
Aby uzyskać więcej informacji, zobacz bibliotekę interfejsu użytkownika systemu Android typu open source i przykładowy kod aplikacji.
Konfigurowanie integracji z usługą TelecomManager
Zestaw SDK wywołujący usługi Azure Communication Services obsługuje integrację z usługą TelecomManager. Tę integrację można włączyć w bibliotece interfejsu użytkownika, konfigurując wystąpienie programu CallCompositeTelecomManagerOptions
. Aby uzyskać więcej informacji, zobacz Integracja z usługą TelecomManager.
CallCompositeTelecomManagerIntegrationMode
Udostępnia opcje dla i SDK_PROVIDED_TELECOM_MANAGER
APPLICATION_IMPLEMENTED_TELECOM_MANAGER
. SDK_PROVIDED_TELECOM_MANAGER
wymaga phoneAccountId
i używa implementacji z wywoływania zestawu SDK. APPLICATION_IMPLEMENTED_TELECOM_MANAGER
jest dla, jeśli TelecomManager jest zintegrowany z aplikacją.
val callComposite: CallComposite = CallCompositeBuilder()
.telecomManagerOptions(CallCompositeTelecomManagerOptions(
CallCompositeTelecomManagerIntegrationMode.SDK_PROVIDED_TELECOM_MANAGER,
"app_id"
)).build()
Interfejs API blokady i wznawiania
hold
Aby APPLICATION_IMPLEMENTED_TELECOM_MANAGER
zarządzać stanem wywołania i resume
zarządzać nim.
callComposite.hold()?.whenComplete { _, error -> }
callComposite.resume()?.whenComplete { _, error -> }