Pomiń ekran konfiguracji w aplikacji
Biblioteka interfejsu użytkownika usług Azure Communication Services oferuje opcję dołączenia do wywołania 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
- 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.
Konfiguracja 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 otoka opcji, która ustawia możliwość biblioteki interfejsu użytkownika, aby pominąć ekran konfiguracji przy użyciu wartości logicznej. Domyślnie możliwość pominięcia ekranu konfiguracji jest ustawiona na false
wartość . Musisz ustawić skipSetupScreen
wartość logiczną true
, aby zapewnić środowisko pomijania ekranu konfiguracji.
Zalecamy skompilowanie aplikacji w taki sposób, że gdy użytkownik spróbuje dołączyć do wywołania, uprawnienia mikrofonu są już przyznawane w celu zapewnienia bezproblemowego środowiska łączenia.
Aby użyć tej funkcji, przekaż wartość skipSetupScreen
logiczną do CallCompositeLocalOptions
metody i wstrzykuj ją do callComposite.launch
elementu .
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 skonfigurowaniu pomijania ekranu konfiguracji w celu dołączenia do połączenia użytkownicy nie mają tej opcji, dopóki nie zostaną oni wywołani.
Możesz przekazać wartość logiczną za pomocą cameraOn
polecenia i microphoneOn
, aby włączyć lub wyłączyć aparat 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 , jak cameraOn
i microphoneOn
są ustawione na false
. Tej funkcji można używać nawet w przypadku domyślnego środowiska dołączania wywołań biblioteki interfejsu użytkownika. 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ść cameraOn
logiczną i microphoneOn
i CallCompositeLocalOptions
wstrzykuj 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 połączenia z mikrofonem i uprawnieniem aparatu do korzystania z funkcji pomijania ekranu konfiguracji z domyślnymi interfejsami API konfiguracji dla mikrofonu i aparatu. 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 wywołania po odmowie uprawnień mikrofonu, biblioteka interfejsu użytkownika porzuca wywołanie 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 interfejsu użytkownika wyłącza funkcję aparatu, gdy odmowa uprawnień aparatu. Dlatego domyślny interfejs API konfiguracji aparatu nie ma wpływu na środowisko wywoływania. Użytkownicy mogą cieszyć się efektem domyślnego interfejsu API konfiguracji 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ż obsługę uprawnień aparatu.
Błędy sieci
Jeśli podczas wywołania lub wywołania wystąpi zakłócenia sieci, 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 wywołania po pominięcia ekranu konfiguracji, biblioteka interfejsu użytkownika zostanie zamknięta na etapie łączenia wywołań i zgłosi błąd z kodem CallCompositeErrorCode.NETWORK_CONNECTION_NOT_AVAILABLE
. Aby uniknąć tego błędu, zalecamy skonfigurowanie aplikacji pod kątem sprawdzania dostępności sieci przed dołączeniem do wywołania przez użytkowników.
Aby odbierać zdarzenia błędów, wywołaj metodę za pomocą polecenia setOnErrorHandler
CallComposite
.
Do programu obsługi błędów mogą zostać wysłane następujące error
wartości:
microphonePermissionNotGranted
networkConnectionNotAvailable
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 otoka opcji, która ustawia możliwość biblioteki interfejsu użytkownika, aby pominąć ekran konfiguracji przy użyciu wartości logicznej. Domyślnie możliwość pominięcia ekranu konfiguracji jest ustawiona na false
wartość . Musisz ustawić skipSetupScreen
wartość logiczną true
, aby zapewnić środowisko pomijania ekranu konfiguracji.
Zalecamy skompilowanie aplikacji w taki sposób, że gdy użytkownik spróbuje dołączyć do wywołania, uprawnienia mikrofonu są już przyznawane w celu zapewnienia bezproblemowego środowiska łączenia.
Aby użyć tej funkcji, przekaż wartość skipSetupScreen
logiczną do LocalOptions
metody i wstrzykuj ją do callComposite.launch
elementu .
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 skonfigurowaniu pomijania ekranu konfiguracji w celu dołączenia do połączenia użytkownicy nie mają tej opcji, dopóki nie zostaną oni wywołani.
Możesz przekazać wartość logiczną za pomocą cameraOn
polecenia i microphoneOn
, aby włączyć lub wyłączyć aparat 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 , jak cameraOn
i microphoneOn
są ustawione na false
. Tej funkcji można używać nawet w przypadku domyślnego środowiska dołączania wywołań biblioteki interfejsu użytkownika. 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ść cameraOn
logiczną i microphoneOn
i LocalOptions
wstrzykuj 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 połączenia z mikrofonem i uprawnieniem aparatu do korzystania z funkcji pomijania ekranu konfiguracji z domyślnymi interfejsami API konfiguracji dla mikrofonu i aparatu. 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ć połączenie po odmowie uprawnień mikrofonu, biblioteka interfejsu użytkownika porzuca wywołanie 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 interfejsu użytkownika wyłącza funkcję aparatu, gdy odmowa uprawnień aparatu. Dlatego domyślny interfejs API konfiguracji aparatu nie ma wpływu na środowisko wywoływania. Użytkownicy mogą cieszyć się efektem domyślnego interfejsu API konfiguracji 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ż obsługę uprawnień aparatu.
Błędy sieci
Jeśli podczas wywołania lub wywołania wystąpi zakłócenia sieci, biblioteka interfejsu użytkownika zostanie zamknięta i zgłosi callEndFailed
błąd.
Jeśli użytkownik nie ma połączenia sieciowego i spróbuje dołączyć do wywołania po pominięcia ekranu konfiguracji, biblioteka interfejsu użytkownika zostanie zamknięta na etapie łączenia wywołań i zgłosi networkConnectionNotAvailable
błąd. Aby uniknąć tego błędu, zalecamy skonfigurowanie aplikacji pod kątem sprawdzania dostępności sieci przed dołączeniem do wywołania przez użytkowników.
Zamknięcia można zaimplementować w celu działania na zdarzeniach złożonych. W poniższym przykładzie pokazano zdarzenie błędu dla złożonego, które zakończyło się niepowodzeniem:
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