Construire l'interface
Pour pouvoir passer et gérer l'appel, vous devez ajouter quelques éléments à l'écran :
- Bouton de connexion
Aliceutilisateur - Bouton de connexion
Bobutilisateur - A
TextViewpour afficher l'état de la connexion - A
Buttonpour lancer l'appel - A
Buttonpour mettre fin à l'appel - A
Buttonpour répondre à l'appel - A
Buttonpour rejeter l'appel
Ouvrir le app/res/layout/activity_main.xml fichier. Cliquez sur le bouton Code dans le coin supérieur droit :

Remplacez le contenu du fichier par ce qui suit :
<?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>
Vous contrôlerez la vue à l'aide de code, vous devez donc stocker des références aux vues. Ajoutez ces propriétés en haut du fichier 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
Vous devez maintenant assigner des vues aux propriétés précédemment ajoutées et ajouter des rappels aux boutons. Ajoutez le code ci-dessous au fichier onCreate méthode à l'intérieur MainActivity (voir ci-dessous le code des permissions) :
// 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() }
Pour que le code soit compilé, ajoutez ces deux méthodes vides dans le fichier MainActivity classe :
private fun loginAsAlice() {
// TODO: update body
}
private fun loginAsBob() {
// TODO: update body
}
Vous remplirez le corps de ces méthodes dans les étapes suivantes de ce tutoriel.
Construire et faire fonctionner
Exécutez à nouveau le projet (Ctrl + R).
Notez que certaines vues sont cachées par défaut. Après avoir lancé l'application, vous verrez login alice et login bob boutons :

Passer un appel vocal d'application à application
Passer un appel vocal depuis une application Android vers la même application Android installée sur un autre appareil à l'aide du Client SDK Android.