Initialisierung des Clients
VoiceClient ist die Hauptklasse, die zur Interaktion mit dem Android Client SDK verwendet wird. Vor der Verwendung müssen Sie den Client initialisieren, indem Sie eine Instanz der Android Kontext Klasse.
An der Spitze der MainActivity Klasse definieren client Eigenschaft, die den Verweis auf den Client enthält, und otherUser Eigenschaft, die den Namen des zweiten Benutzers enthält (der Benutzer, der angerufen wird):
private lateinit var client: VoiceClient
private var otherUser: String = ""
Suchen Sie die onCreate Methode in der MainActivity Klasse und initialisieren VoiceClient:
client = VoiceClient(this.application.applicationContext)
val config = VGClientConfig(ClientConfigRegion.US)
config.enableWebsocketInvites = true
client.setConfig(config)
HINWEIS: Die enableWebsocketInvites Flagge in der Client-Konfiguration sollte nicht in der Produktion verwendet werden. Aktivieren Sie Push-Benachrichtigungen, um sicherzustellen, dass Sie eingehende Anrufe erhalten, auch wenn Ihre Anwendung im Hintergrund läuft. Siehe die Push-Benachrichtigungen Leitfaden für weitere Informationen.
Die IDE zeigt eine Warnung über den nicht aufgelösten Verweis an:

Setzen Sie den Cursor auf den roten Text und drücken Sie Alt + Enter um die Referenz zu importieren.
Jetzt im MainActivity Klasse eine Hilfsmethode hinzufügen, die alle Elemente der Benutzeroberfläche ausblendet:
private fun hideUI() {
val content = findViewById<LinearLayout>(R.id.content)
content.forEach { it.visibility = View.GONE }
}
Füllen Sie schließlich den Textkörper von zwei Methoden, um die Benutzeranmeldung zu ermöglichen. Bitte stellen Sie sicher, dass Sie ALICE_JWT und BOB_JWT mit den JWTs, die Sie in einem früheren Schritt erstellt haben:
private fun loginAsAlice() {
otherUser = "Bob"
client.createSession(ALICE_JWT) {
err, sessionId ->
when {
err != null -> {
hideUI()
connectionStatusTextView.visibility = View.VISIBLE
connectionStatusTextView.text = err.localizedMessage
}
else -> {
hideUI()
connectionStatusTextView.visibility = View.VISIBLE
connectionStatusTextView.text = "Connected"
startCallButton.visibility = View.VISIBLE
waitingForIncomingCallTextView.visibility = View.VISIBLE
}
}
}
}
private fun loginAsBob() {
otherUser = "Alice"
client.createSession(BOB_JWT) {
err, sessionId ->
when {
err != null -> {
hideUI()
connectionStatusTextView.visibility = View.VISIBLE
connectionStatusTextView.text = err.localizedMessage
}
else -> {
hideUI()
connectionStatusTextView.visibility = View.VISIBLE
connectionStatusTextView.text = "Connected"
startCallButton.visibility = View.VISIBLE
waitingForIncomingCallTextView.visibility = View.VISIBLE
}
}
}
}
ANMERKUNG Die Verfallszeit für den Token wurde auf 6 Stunden festgelegt, so dass Sie einen neuen Token generieren müssen, wenn er zu alt ist.
Bauen und Ausführen
Presse Ctrl + R um die Anwendung zu erstellen und auszuführen.
Nach erfolgreicher Benutzeranmeldung sehen Sie waiting for incoming call Text und make a call Taste:

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.