Kotlin

Criação da interface

Para poder fazer e gerenciar a chamada, é preciso adicionar alguns elementos à tela:

  • Botão para fazer login Alice usuário
  • Botão para fazer login Bob usuário
  • A TextView para mostrar o status da conexão
  • A Button para iniciar a ligação
  • A Button para encerrar a ligação
  • A Button para atender a ligação
  • A Button para rejeitar a chamada

Abra o app/res/layout/activity_main.xml arquivo. Clique no Code botão no canto superior direito:

Code view

Substitua o conteúdo do arquivo pelo seguinte:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:gravity="center"
        android:id="@+id/content"
        tools:context=".MainActivity">

    <TextView
            android:id="@+id/connectionStatusTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="40dp" />

    <Button
            android:id="@+id/loginAsAlice"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="40dp"
            android:text="Login Alice" />

    <Button
            android:id="@+id/loginAsBob"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="40dp"
            android:text="Login Bob" />

    <TextView
            android:id="@+id/waitingForIncomingCallTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="40dp"
            android:text="Waiting for incoming call"
            android:visibility="gone"
            tools:visibility="visible"/>

    <Button
            android:id="@+id/startCallButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="40dp"
            android:text="Start call"
            android:visibility="gone"
            tools:visibility="visible" />

    <Button
            android:id="@+id/answerCallButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="40dp"
            android:text="Answer"
            android:visibility="gone"
            tools:visibility="visible" />

    <Button
            android:id="@+id/rejectCallButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="40dp"
            android:text="Reject"
            android:visibility="gone"
            tools:visibility="visible" />

    <Button
            android:id="@+id/endCallButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="40dp"
            android:text="End"
            android:visibility="gone"
            tools:visibility="visible" />

</LinearLayout>

Você controlará a visualização por meio de código; portanto, é necessário armazenar referências às visualizações. Adicione essas propriedades no início do arquivo ManActivity classe:

private lateinit var connectionStatusTextView: TextView
private lateinit var waitingForIncomingCallTextView: TextView
private lateinit var loginAsAlice: Button
private lateinit var loginAsBob: Button
private lateinit var startCallButton: Button
private lateinit var answerCallButton: Button
private lateinit var rejectCallButton: Button
private lateinit var endCallButton: Button

Agora você precisa atribuir visualizações às propriedades adicionadas anteriormente e adicionar callbacks aos botões. Adicione o código abaixo ao onCreate método interno MainActivity classe (código de solicitação de permissões abaixo):

// init views
connectionStatusTextView = findViewById(R.id.connectionStatusTextView)
waitingForIncomingCallTextView = findViewById(R.id.waitingForIncomingCallTextView)
loginAsAlice = findViewById(R.id.loginAsAlice)
loginAsBob = findViewById(R.id.loginAsBob)
startCallButton = findViewById(R.id.startCallButton)
answerCallButton = findViewById(R.id.answerCallButton)
rejectCallButton = findViewById(R.id.rejectCallButton)
endCallButton = findViewById(R.id.endCallButton)

loginAsAlice.setOnClickListener { loginAsAlice() }
loginAsBob.setOnClickListener { loginAsBob() }

Para que o código seja compilado, adicione estes dois métodos vazios no MainActivity classe:

private fun loginAsAlice() {
    // TODO: update body
}

private fun loginAsBob() {
    // TODO: update body
}

Você irá preencher o corpo desses métodos nas próximas etapas deste tutorial.

Compilar e executar

Execute o projeto novamente (Ctrl + R).

Observe que algumas visualizações ficam ocultas por padrão. Após iniciar o aplicativo, você verá login alice e login bob botões:

Main screen

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?