Kotlin

Receber chamada

Antes de fazer uma chamada, vamos adicionar ao aplicativo a funcionalidade de receber chamadas. Adicione onGoingCallID e callInviteID propriedades na parte superior da MainActivity classe:

private var onGoingCallID: CallId? = null
private var callInviteID: CallId? = null

Para monitorar chamadas recebidas, adicione um ouvinte de chamadas recebidas no final do arquivo onCreate método interno MainActivity classe:

client.setCallInviteListener { callId, from, channelType ->
    callInviteID = callId
    runOnUiThread {
        hideUI()
        answerCallButton.visibility = View.VISIBLE
        rejectCallButton.visibility = View.VISIBLE
    }
}

O aplicativo agora ficará atento ao evento de chamada recebida. O código acima exibe os botões para atender e rejeitar a chamada quando o evento de chamada recebida é detectado. Observe que você está armazenando callInviteID referência para interagir posteriormente com a chamada.

Antes de poder realizar ações por meio da interface do usuário, você também precisa adicionar ouvintes aos botões. Adicione este código no final do arquivo onCreate dentro MainActivity classe:

answerCallButton.setOnClickListener { answerCall() }
rejectCallButton.setOnClickListener { rejectCall() }
endCallButton.setOnClickListener { endCall() }

Para atender a chamada, digite answerCall método interno MainActivity classe:

@SuppressLint("MissingPermission")
private fun answerCall() {
    callInviteID?.let {
        client.answer(it) {
            err ->
            when {
                err != null -> {
                    connectionStatusTextView.text = err.localizedMessage
                }
                else -> {
                    onGoingCallID = it
                    hideUI()
                    endCallButton.visibility = View.VISIBLE
                }
            }
        }
    }
}

Depois de atender a ligação, o end call O botão será exibido.

NOTA: O SuppressLint Essa anotação é usada por uma questão de simplicidade. No aplicativo de produção, você deve se certificar de que as permissões foram concedidas antes de atender a chamada.

Para rejeitar a chamada, adicione rejectCall método interno MainActivity classe:

private fun rejectCall() {
    callInviteID?.let {
        client.reject(it) { err ->
            when {
                err != null -> {
                    connectionStatusTextView.text = err.localizedMessage
                }
                else -> {
                    hideUI()
                    startCallButton.visibility = View.VISIBLE
                    waitingForIncomingCallTextView.visibility = View.VISIBLE
                }
            }
        }
        onGoingCallID = null
    }
}

Para encerrar a ligação, digite endCall método interno MainActivity classe:

private fun endCall() {
    onGoingCallID?.let {
        client.hangup(it) {
            err ->
            when {
                err != null -> {
                    connectionStatusTextView.text = err.localizedMessage
                }
                else -> {
                    hideUI()
                    startCallButton.visibility = View.VISIBLE
                    waitingForIncomingCallTextView.visibility = View.VISIBLE
                }
            }
        }
    }
    onGoingCallID = null
}

Observe que, após rejeitar ou encerrar a chamada com sucesso, você define onGoingCall redefinir o valor da propriedade para nulo.

Fazendo uma chamada de voz de aplicativo para aplicativo

Faça uma chamada de voz a partir de um aplicativo Android para o mesmo aplicativo Android instalado em outro dispositivo usando o Client SDK.

Etapas
1
Introdução a esta tarefa
2
Prerequisites
3
Criar um servidor de webhooks
4
Criar uma aplicação da Vonage
5
Criar os usuários
6
Gerar JWTs
7
Criar um projeto Android
8
Adicionar permissões
9
Criar a tela principal
10
Inicializar o cliente
11
Receber chamada
12
Fazer uma ligação
13
E agora?