Aufbau der Schnittstelle
Um den Anruf tätigen und verwalten zu können, müssen Sie dem Bildschirm einige Elemente hinzufügen:
- Schaltfläche zum Anmelden
AliceBenutzer - Schaltfläche zum Anmelden
BobBenutzer - A
TextViewum den Verbindungsstatus anzuzeigen - A
Buttonum den Anruf zu starten - A
Buttonum das Gespräch zu beenden - A
Buttonum dem Ruf zu folgen - A
Buttonum den Anruf abzulehnen
Öffnen Sie die app/res/layout/activity_main.xml Datei. Klicken Sie auf die Code in der oberen rechten Ecke:

Ersetzen Sie den Inhalt der Datei durch den folgenden Text:
Sie werden die Ansicht mit Code steuern, daher müssen Sie Verweise auf die Ansichten speichern. Fügen Sie diese Eigenschaften am Anfang der ManActivity Klasse:
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
Nun müssen Sie den zuvor hinzugefügten Eigenschaften Ansichten zuweisen und den Schaltflächen Rückrufe hinzufügen. Fügen Sie den folgenden Code zu den onCreate innere Methode MainActivity Klasse (unten: Code für die Anforderungserlaubnis):
// 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() }
Damit der Code kompiliert werden kann, fügen Sie diese beiden leeren Methoden in der MainActivity Klasse:
private fun loginAsAlice() {
// TODO: update body
}
private fun loginAsBob() {
// TODO: update body
}
Sie werden den Körper dieser Methoden in den folgenden Schritten dieses Lehrgangs ausfüllen.
Bauen und Ausführen
Führen Sie das Projekt erneut aus (Ctrl + R).
Beachten Sie, dass einige Ansichten standardmäßig ausgeblendet sind. Nach dem Start der App sehen Sie login alice und login bob Tasten:

Sprachanruf von Anwendung zu Anwendung
Tätigen Sie einen Sprachanruf von einer Android-App zu derselben Android-App, die auf einem anderen Gerät installiert ist, indem Sie das Android Client SDK verwenden.