Kotlin

Creación de la interfaz

Para poder realizar y gestionar la llamada, es necesario añadir algunos elementos a la pantalla:

  • Botón para iniciar sesión Alice usuario
  • Botón para iniciar sesión Bob usuario
  • A TextView para mostrar el estado de la conexión
  • A Button para iniciar la llamada
  • A Button para finalizar la llamada
  • A Button para atender la llamada
  • A Button rechazar la llamada

Abra el app/res/layout/activity_main.xml archivo. Haga clic en el botón Code en la esquina superior derecha:

Code view

Sustituya el contenido del archivo por lo siguiente:

<?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>

Controlarás la vista usando código, así que tienes que almacenar referencias a las vistas. Añade estas propiedades en la parte superior del ManActivity clase:

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

Ahora tienes que asignar vistas a las propiedades añadidas anteriormente y añadir funciones de llamada a los botones. Añade el siguiente código al onCreate método inside MainActivity clase (código de solicitud de permisos que aparece a continuación):

// 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 el código compile añade estos dos métodos vacíos en la directiva MainActivity clase:

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

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

Usted llenará el cuerpo de estos métodos en los siguientes pasos de este tutorial.

Construir y ejecutar

Vuelve a ejecutar el proyecto (Ctrl + R).

Ten en cuenta que algunas vistas están ocultas por defecto. Tras iniciar la aplicación, verás login alice y login bob botones:

Main screen

Realizar una llamada de voz de aplicación a aplicación

Realiza una llamada de voz desde una aplicación de Android a la misma aplicación de Android instalada en otro dispositivo utilizando el Client SDK de Android.

Pasos
1
Introducción a esta tarea
2
Prerequisites
3
Crear un servidor webhook
4
Crear una aplicación de Vonage
5
Crear los usuarios
6
Generar JWT
7
Crear un proyecto Android
8
Añadir permisos
9
Construir pantalla principal
10
Inicializar el cliente
11
Recibir llamada
12
Hacer una llamada
13
¿Y ahora qué?