Compartilhar via


Ignorar a tela de configuração em um aplicativo

A Biblioteca de Interface do Usuário dos Serviços de Comunicação do Azure oferece a opção de ingressar em uma chamada sem passar pela tela de configuração. Ele capacita os desenvolvedores a criar um aplicativo de comunicação de uma forma que permita que os usuários participem de uma chamada diretamente, sem qualquer interação do usuário. O recurso também fornece a capacidade de configurar o estado padrão da câmera e do microfone (ligado ou desligado) antes que os usuários ingressem em uma chamada.

Neste artigo, você aprenderá a configurar o recurso corretamente em seu aplicativo.

Pré-requisitos

Configurar o recurso

Para obter mais informações, consulte a biblioteca de interface do usuário do Android de código aberto e o código do aplicativo de exemplo.

Opção para ignorar a tela de configuração

CallCompositeLocalOptions é um wrapper de opções que define a capacidade da Biblioteca da Interface do Usuário de ignorar a tela de instalação usando um Booleano. Por padrão, a capacidade de ignorar a tela de configuração é definida como false. Você precisa definir skipSetupScreen com um true valor booleano para fornecer a experiência de pular a tela de configuração.

Recomendamos que você crie seu aplicativo de tal forma que, quando um usuário tentar ingressar em uma chamada, a permissão de microfone já seja concedida para uma experiência de ingresso suave.

Screenshot of joining call by skipping the setup screen for Android.

Para usar o recurso, passe o valor booleano com skipSetupScreen para CallCompositeLocalOptions e injete-o no callComposite.launch.

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

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

callComposite.launch(callLauncherActivity, remoteOptions, localOptions)

Opções padrão para configuração de câmera e microfone

Por padrão, a tela de configuração oferece aos usuários a opção de definir as configurações da câmera e do microfone antes de ingressar em uma chamada. Quando você configura pular a tela de configuração para ingressar em uma chamada, os usuários não têm essa opção até que estejam na chamada.

Você pode passar um valor booleano com cameraOn e para ligar ou desligar a câmera e microphoneOn o microfone antes que os usuários ingressem em uma chamada. A funcionalidade de controlar o estado padrão da câmera e do microfone não será afetada se um usuário conceder a permissão para cada um deles, respectivamente.

Por padrão, ambos cameraOn e microphoneOn são definidos como false. Você pode usar essa funcionalidade mesmo com a experiência padrão de ingresso de chamada da Biblioteca da Interface do Usuário. Nesse caso, a câmera e o microfone são ligados ou desligados na tela de configuração de acordo com a configuração definida.

Para definir o estado padrão da câmera e do microfone, passe o valor booleano com cameraOn e para CallCompositeLocalOptions e microphoneOn injete-o no callComposite.launch.

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

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

callComposite.launch(callLauncherActivity, remoteOptions, localOptions)

Tratamento de permissões

Recomendamos que você permita que os usuários participem de uma chamada com permissão de microfone e câmera sendo concedida para usar o recurso de ignorar a tela de configuração com APIs de configuração padrão para o microfone e a câmera. Se você não manipular as permissões do usuário, a Biblioteca da Interface do Usuário tentará manipulá-las para você.

Os usuários devem habilitar a permissão de microfone para ingressar em uma chamada. Se os usuários tentarem ingressar em uma chamada depois de negar a permissão do microfone, a Biblioteca da Interface do Usuário descartará a chamada no estágio de conexão e lançará um erro com o código CallCompositeErrorCode.MICROPHONE_PERMISSION_NOT_GRANTED.

No entanto, os usuários podem participar de uma chamada mesmo que neguem a permissão da câmera. A Biblioteca da Interface do Usuário desabilita a funcionalidade da câmera quando a permissão da câmera é negada. Portanto, a API de configuração padrão para a câmera não afeta a experiência de chamada. Os usuários podem aproveitar o efeito da API de configuração padrão para a câmera depois de conceder a permissão da câmera.

Recomendamos que você manipule a permissão do microfone. Se os usuários ingressarem na chamada com a câmera ativada por padrão, recomendamos que você também manipule a permissão da câmera.

Erros de rede

Se ocorrer uma interrupção de rede durante uma chamada ou uma chamada cair, a Biblioteca da Interface do Usuário será fechada e lançará um erro com o código CallCompositeErrorCode.CALL_END_FAILED.

Se um usuário não tiver uma conexão de rede e tentar ingressar na chamada depois de ignorar a tela de configuração, a Biblioteca da Interface do Usuário será fechada no estágio de conexão de chamada e lançará um erro com o código CallCompositeErrorCode.NETWORK_CONNECTION_NOT_AVAILABLE. Para evitar esse erro, recomendamos que você configure seu aplicativo para verificar a disponibilidade da rede antes que os usuários ingressem em uma chamada.

Para receber eventos de erro, chame setOnErrorHandler com CallComposite.

Os seguintes valores de error podem ser enviados ao manipulador de erro:

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

Para obter mais informações, consulte a biblioteca de interface do usuário do iOS de código aberto e o código do aplicativo de exemplo.

Opção para ignorar a tela de configuração

LocalOptions é um wrapper de opções que define a capacidade da Biblioteca da Interface do Usuário de ignorar a tela de instalação usando um Booleano. Por padrão, a capacidade de ignorar a tela de configuração é definida como false. Você precisa definir skipSetupScreen com um true valor booleano para fornecer a experiência de pular a tela de configuração.

Recomendamos que você crie seu aplicativo de tal forma que, quando um usuário tentar ingressar em uma chamada, a permissão de microfone já seja concedida para uma experiência de ingresso suave.

Screenshot of joining call by skipping the setup screen for iOS.

Para usar o recurso, passe o valor booleano com skipSetupScreen para LocalOptions e injete-o no callComposite.launch.

let localOptions = LocalOptions(skipSetupScreen: true)

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

Opções padrão para configuração de câmera e microfone

Por padrão, a tela de configuração oferece aos usuários a opção de definir as configurações da câmera e do microfone antes de ingressar em uma chamada. Quando você configura pular a tela de configuração para ingressar em uma chamada, os usuários não têm essa opção até que estejam na chamada.

Você pode passar um valor booleano com cameraOn e para ligar ou desligar a câmera e microphoneOn o microfone antes que os usuários ingressem em uma chamada. A funcionalidade de controlar o estado padrão da câmera e do microfone não será afetada se um usuário conceder a permissão para cada um deles, respectivamente.

Por padrão, ambos cameraOn e microphoneOn são definidos como false. Você pode usar essa funcionalidade mesmo com a experiência padrão de ingresso de chamada da Biblioteca da Interface do Usuário. Nesse caso, a câmera e o microfone são ligados ou desligados na tela de configuração de acordo com a configuração definida.

Para definir o estado padrão da câmera e do microfone, passe o valor booleano com cameraOn e para LocalOptions e microphoneOn injete-o no callComposite.launch.

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

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

Tratamento de permissões

Recomendamos que você permita que os usuários participem de uma chamada com permissão de microfone e câmera sendo concedida para usar o recurso de ignorar a tela de configuração com APIs de configuração padrão para o microfone e a câmera. Se você não manipular as permissões do usuário, a Biblioteca da Interface do Usuário tentará manipulá-las para você.

Os usuários devem habilitar a permissão de microfone para ingressar em uma chamada. Se os usuários tentarem ingressar em uma chamada depois de negar a permissão do microfone, a Biblioteca da Interface do Usuário descartará a chamada no estágio de conexão e lançará um microphonePermissionNotGranted erro.

No entanto, os usuários podem participar de uma chamada mesmo que neguem a permissão da câmera. A Biblioteca da Interface do Usuário desabilita a funcionalidade da câmera quando a permissão da câmera é negada. Portanto, a API de configuração padrão para a câmera não afeta a experiência de chamada. Os usuários podem aproveitar o efeito da API de configuração padrão para a câmera depois de conceder a permissão da câmera.

Recomendamos que você manipule a permissão do microfone. Se os usuários ingressarem na chamada com a câmera ativada por padrão, recomendamos que você também manipule a permissão da câmera.

Erros de rede

Se ocorrer uma interrupção de rede durante uma chamada ou uma chamada cair, a Biblioteca da Interface do Usuário será fechada e lançará um callEndFailed erro.

Se um usuário não tiver uma conexão de rede e tentar ingressar na chamada depois de ignorar a tela de configuração, a Biblioteca da Interface do Usuário será fechada no estágio de conexão de chamada e lançará um networkConnectionNotAvailable erro. Para evitar esse erro, recomendamos que você configure seu aplicativo para verificar a disponibilidade da rede antes que os usuários ingressem em uma chamada.

Você pode implementar os fechamentos para agir sobre eventos compostos. O exemplo a seguir mostra um evento de erro de uma composição com falha:

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

Os seguintes valores de error podem ser enviados ao manipulador de erro:

  • microphonePermissionNotGranted
  • networkConnectionNotAvailable

Próximas etapas