Udostępnij przez


Pomiń ekran konfiguracji w aplikacji

Biblioteka interfejsu użytkownika usług Azure Communication Services oferuje opcję dołączenia do rozmowy bez przechodzenia przez ekran konfiguracji. Umożliwia deweloperom tworzenie aplikacji komunikacyjnej w sposób umożliwiający użytkownikom bezpośrednie dołączanie do wywołania bez interakcji z użytkownikiem. Funkcja zapewnia również możliwość skonfigurowania domyślnego stanu aparatu i mikrofonu (włączonego lub wyłączonego), zanim użytkownicy dołączą do połączenia.

Z tego artykułu dowiesz się, jak poprawnie skonfigurować funkcję w aplikacji.

Wymagania wstępne

Konfigurowanie funkcji

Aby uzyskać więcej informacji, zobacz bibliotekę interfejsu użytkownika systemu Android typu open source i przykładowy kod aplikacji.

Opcja pominięcia ekranu konfiguracji

CallCompositeLocalOptions to opakowanie opcji, które ustawia zdolność biblioteki interfejsu użytkownika do pominięcia ekranu konfiguracji za pomocą wartości logicznej. Domyślnie możliwość pominięcia ekranu konfiguracji jest ustawiona na wartość false. Musisz ustawić skipSetupScreen przy użyciu wartości logicznej true, aby umożliwić pominięcie ekranu konfiguracji.

Zalecamy stworzenie aplikacji w taki sposób, aby gdy użytkownik spróbuje dołączyć do rozmowy, uprawnienia do mikrofonu były już przyznane, co zapewni bezproblemowe dołączenie.

Zrzut ekranu przedstawiający łączenie połączenia przez pominięcie ekranu konfiguracji dla systemu Android.

Aby użyć tej funkcji, przekaż wartość logiczną skipSetupScreen do CallCompositeLocalOptions i wstrzyknij ją do elementu callComposite.launch.

import com.azure.android.communication.ui.calling.models.CallCompositeLocalOptions

val localOptions: CallCompositeLocalOptions = CallCompositeLocalOptions()
    .setSkipSetupScreen(true)

callComposite.launch(callLauncherActivity, remoteOptions, localOptions)

Domyślne opcje konfiguracji aparatu i mikrofonu

Domyślnie ekran konfiguracji udostępnia użytkownikom opcję konfigurowania ustawień aparatu i mikrofonu przed dołączeniem do połączenia. Po ustawieniu pomijania ekranu konfiguracji, aby dołączyć do połączenia, użytkownicy nie mają tej opcji, dopóki nie dołączą do połączenia.

Możesz przekazać wartość logiczną z cameraOn i microphoneOn, aby włączyć lub wyłączyć kamerę i mikrofon, zanim użytkownicy dołączą do połączenia. Funkcjonalność kontrolowania domyślnego stanu aparatu i mikrofonu nie ma wpływu na to, jeśli użytkownik udziela uprawnień dla każdego z nich.

Domyślnie zarówno cameraOn, jak i microphoneOn są ustawione na false. Możesz korzystać z tej funkcji nawet w domyślnym środowisku dołączania do połączeń oferowanym przez bibliotekę UI. W takim przypadku aparat i mikrofon są włączone lub wyłączone na ekranie konfiguracji zgodnie z ustawioną konfiguracją.

Aby ustawić domyślny stan aparatu i mikrofonu, przekaż wartość logiczną wraz z cameraOn i microphoneOn do CallCompositeLocalOptions i wstrzyknij ją do callComposite.launch elementu.

import com.azure.android.communication.ui.calling.models.CallCompositeLocalOptions

val localOptions: CallCompositeLocalOptions = CallCompositeLocalOptions()
    .setMicrophoneOn(true)
    .setCameraOn(true)

callComposite.launch(callLauncherActivity, remoteOptions, localOptions)

Obsługa uprawnień

Zalecamy, aby umożliwić użytkownikom dołączanie do połączenia z przyznanymi uprawnieniami dla mikrofonu i kamery, co pozwala na pominięcie ekranu konfiguracji przy użyciu domyślnych API konfiguracji dla mikrofonu i kamery. Jeśli nie obsłużysz uprawnień użytkownika, biblioteka interfejsu użytkownika podejmie próbę ich obsługi.

Użytkownicy muszą włączyć uprawnienia do mikrofonu, aby dołączyć do połączenia. Jeśli użytkownicy próbują dołączyć do połączenia po odmowie udzielenia uprawnień do mikrofonu, biblioteka interfejsu użytkownika anuluje połączenie na etapie łączenia i zgłasza błąd z kodem CallCompositeErrorCode.MICROPHONE_PERMISSION_NOT_GRANTED.

Jednak użytkownicy mogą dołączyć do połączenia, nawet jeśli odmawiają uprawnień do aparatu. Biblioteka UI wyłącza funkcję aparatu, gdy dostęp do aparatu jest odmówiony. Tak więc domyślny interfejs API konfiguracji aparatu nie ma wpływu na doświadczenie użytkownika podczas rozmowy. Użytkownicy mogą cieszyć się efektem API domyślnej konfiguracji ustawień aparatu po udzieleniu uprawnień do aparatu.

Zalecamy obsługę uprawnień mikrofonu. Jeśli użytkownicy dołączają do połączenia z kamerą włączoną domyślnie, zalecamy również zarządzanie uprawnieniami kamery.

Błędy sieci

Jeśli podczas rozmowy wystąpi zakłócenie sieci lub połączenie zostanie przerwane, biblioteka interfejsu użytkownika zostanie zamknięta i zgłosi błąd z kodem CallCompositeErrorCode.CALL_END_FAILED.

Jeśli użytkownik nie ma połączenia sieciowego i spróbuje dołączyć do rozmowy po pominięciu ekranu konfiguracji, biblioteka interfejsu użytkownika zostanie zamknięta na etapie łączenia rozmowy i wywoła błąd o kodzie CallCompositeErrorCode.NETWORK_CONNECTION_NOT_AVAILABLE. Aby uniknąć tego błędu, zalecamy skonfigurowanie aplikacji tak, aby sprawdzić dostępność sieci przed rozpoczęciem rozmowy przez użytkowników.

Aby odbierać zdarzenia błędów, wywołaj setOnErrorHandler z CallComposite.

Do programu obsługi błędów mogą zostać wysłane następujące error wartości:

  • microphonePermissionNotGranted
  • networkConnectionNotAvailable
callComposite.addOnErrorEventHandler { callCompositeErrorEvent ->
    println(callCompositeErrorEvent.errorCode)
}

Aby uzyskać więcej informacji, zobacz bibliotekę interfejsu użytkownika systemu iOS typu open source i przykładowy kod aplikacji.

Opcja pominięcia ekranu konfiguracji

LocalOptions to opakowanie opcji, które ustawia zdolność biblioteki interfejsu użytkownika do pominięcia ekranu konfiguracji za pomocą wartości logicznej. Domyślnie możliwość pominięcia ekranu konfiguracji jest ustawiona na wartość false. Musisz ustawić skipSetupScreen przy użyciu wartości logicznej true, aby umożliwić pominięcie ekranu konfiguracji.

Zalecamy stworzenie aplikacji w taki sposób, aby gdy użytkownik spróbuje dołączyć do rozmowy, uprawnienia do mikrofonu były już przyznane, co zapewni bezproblemowe dołączenie.

Zrzut ekranu przedstawiający łączenie wywołania przez pominięcie ekranu konfiguracji dla systemu iOS.

Aby użyć tej funkcji, przekaż wartość logiczną skipSetupScreen do LocalOptions i wstrzyknij ją do elementu callComposite.launch.

let localOptions = LocalOptions(skipSetupScreen: true)

callComposite.launch(remoteOptions: remoteOptions, localOptions: localOptions)

Domyślne opcje konfiguracji aparatu i mikrofonu

Domyślnie ekran konfiguracji udostępnia użytkownikom opcję konfigurowania ustawień aparatu i mikrofonu przed dołączeniem do połączenia. Po ustawieniu pomijania ekranu konfiguracji, aby dołączyć do połączenia, użytkownicy nie mają tej opcji, dopóki nie dołączą do połączenia.

Możesz przekazać wartość logiczną z cameraOn i microphoneOn, aby włączyć lub wyłączyć kamerę i mikrofon, zanim użytkownicy dołączą do połączenia. Funkcjonalność kontrolowania domyślnego stanu aparatu i mikrofonu nie ma wpływu na to, jeśli użytkownik udziela uprawnień dla każdego z nich.

Domyślnie zarówno cameraOn, jak i microphoneOn są ustawione na false. Możesz korzystać z tej funkcji nawet w domyślnym środowisku dołączania do połączeń oferowanym przez bibliotekę UI. W takim przypadku aparat i mikrofon są włączone lub wyłączone na ekranie konfiguracji zgodnie z ustawioną konfiguracją.

Aby ustawić domyślny stan aparatu i mikrofonu, przekaż wartość logiczną wraz z cameraOn i microphoneOn do LocalOptions i wstrzyknij ją do callComposite.launch elementu.

let localOptions = LocalOptions(cameraOn: true, microphoneOn: true)

callComposite.launch(remoteOptions: remoteOptions, localOptions: localOptions)

Obsługa uprawnień

Zalecamy, aby umożliwić użytkownikom dołączanie do połączenia z przyznanymi uprawnieniami dla mikrofonu i kamery, co pozwala na pominięcie ekranu konfiguracji przy użyciu domyślnych API konfiguracji dla mikrofonu i kamery. Jeśli nie obsłużysz uprawnień użytkownika, biblioteka interfejsu użytkownika podejmie próbę ich obsługi.

Użytkownicy muszą włączyć uprawnienia do mikrofonu, aby dołączyć do połączenia. Jeśli użytkownicy spróbują dołączyć do połączenia po odmówiwszy uprawnień do mikrofonu, biblioteka interfejsu użytkownika anuluje połączenie na etapie łączenia i zgłasza microphonePermissionNotGranted błąd.

Jednak użytkownicy mogą dołączyć do połączenia, nawet jeśli odmawiają uprawnień do aparatu. Biblioteka UI wyłącza funkcję aparatu, gdy dostęp do aparatu jest odmówiony. Tak więc domyślny interfejs API konfiguracji aparatu nie ma wpływu na doświadczenie użytkownika podczas rozmowy. Użytkownicy mogą cieszyć się efektem API domyślnej konfiguracji ustawień aparatu po udzieleniu uprawnień do aparatu.

Zalecamy obsługę uprawnień mikrofonu. Jeśli użytkownicy dołączają do połączenia z kamerą włączoną domyślnie, zalecamy również zarządzanie uprawnieniami kamery.

Błędy sieci

Jeśli podczas rozmowy wystąpi zakłócenie sieci lub rozmowa zostanie przerwana, biblioteka UI zostanie zamknięta i zgłosi callEndFailed błąd.

Jeśli użytkownik nie ma połączenia sieciowego i spróbuje dołączyć do rozmowy po pominięciu ekranu konfiguracji, biblioteka interfejsu użytkownika zostaje zamknięta na etapie nawiązywania połączenia i zgłasza networkConnectionNotAvailable błąd. Aby uniknąć tego błędu, zalecamy skonfigurowanie aplikacji tak, aby sprawdzić dostępność sieci przed rozpoczęciem rozmowy przez użytkowników.

Można zaimplementować zamknięcia, aby działać na zdarzeniach złożonych. W poniższym przykładzie pokazano zdarzenie błędu dla nieudanego kompozytu.

callComposite?.events.onError = { error in
    print("CallComposite failed with error:\(error)")
}

Do programu obsługi błędów mogą zostać wysłane następujące error wartości:

  • microphonePermissionNotGranted
  • networkConnectionNotAvailable

Dalsze kroki