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 permite que os desenvolvedores criem um aplicativo de comunicação de forma a permitir 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 participem de uma chamada.
Neste artigo, você aprenderá como configurar o recurso corretamente em seu aplicativo.
Pré-requisitos
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
- Um recurso de Serviços de Comunicação implantado. Crie um recurso de Serviços de Comunicação.
- Um token de acesso de usuário para habilitar o cliente de chamada. Obtenha um token de acesso de usuário.
- Opcional: conclusão do início rápido para começar a usar os compostos da Biblioteca da Interface do Usuário.
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 para ignorar a tela de configuração usando um Boolean. Por padrão, a capacidade de ignorar a tela de configuração é definida como false
. Você tem que 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 tenta participar de uma chamada, a permissão de microfone já é concedida para uma experiência de ingresso suave.
Para usar o recurso, passe o valor booleano com skipSetupScreen
to 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 de câmera e microfone antes de participar de uma chamada. Quando você configura pular a tela de configuração para participar de 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 participem de 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
estão definidos como false
. Você pode usar essa funcionalidade mesmo com a experiência padrão de ingresso de chamadas 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 que você definiu.
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 participar de uma chamada. Se os usuários tentarem participar de 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 se negarem a permissão da câmera. A biblioteca da interface do usuário desativa 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 desfrutar do 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 participarem da chamada com a câmera ligada 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 se 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 participem de uma chamada.
Para receber eventos de erro, ligue setOnErrorHandler
para CallComposite
.
Os seguintes error
valores podem ser enviados para o manipulador de erros:
microphonePermissionNotGranted
networkConnectionNotAvailable
Para obter mais informações, consulte a biblioteca de interface do usuário do iOS de código aberto e o código de 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 para ignorar a tela de configuração usando um Boolean. Por padrão, a capacidade de ignorar a tela de configuração é definida como false
. Você tem que 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 tenta participar de uma chamada, a permissão de microfone já é concedida para uma experiência de ingresso suave.
Para usar o recurso, passe o valor booleano com skipSetupScreen
to 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 de câmera e microfone antes de participar de uma chamada. Quando você configura pular a tela de configuração para participar de 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 participem de 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
estão definidos como false
. Você pode usar essa funcionalidade mesmo com a experiência padrão de ingresso de chamadas 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 que você definiu.
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 participar de uma chamada. Se os usuários tentarem participar de 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 se negarem a permissão da câmera. A biblioteca da interface do usuário desativa 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 desfrutar do 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 participarem da chamada com a câmera ligada 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 se 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 participar da 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 participem de uma chamada.
Você pode implementar fechamentos para agir em eventos compostos. O exemplo a seguir mostra um evento de erro para um composto com falha:
callComposite?.events.onError = { error in
print("CallComposite failed with error:\(error)")
}
Os seguintes error
valores podem ser enviados para o manipulador de erros:
microphonePermissionNotGranted
networkConnectionNotAvailable