Beenden eines Anrufs
Das Gespräch kann von einem der beiden Gesprächspartner beendet werden:
- Anwendung durch den Aufruf der
hangupMethode auf dercallInstanz - Anrufer durch Auflegen am physischen Gerät
Anruf beenden, wenn der Anrufer auflegt
Zum Beenden des Anrufs (Auflegen) müssen Sie den Verweis auf das laufende Anrufobjekt speichern. hinzufügen onGoingCall Eigenschaft am Anfang der MainActivity:
var onGoingCall: NexmoCall? = null
Sie müssen die laufende Anrufreferenz in der onGoingCall Eigenschaft und fügen Sie addCallEventListener um Sie über das Ende des Anrufs zu informieren. Im MainActivity Aktualisieren Sie den Textkörper der startCall Methode. Bitte stellen Sie sicher, dass Sie die PHONE_NUMBER unten mit der tatsächlichen Telefonnummer, die Sie anrufen möchten, im Feld E.164 Format (z. B. 447700900000):
@SuppressLint("MissingPermission")
fun startCall() {
client.call("PHONE_NUMBER", NexmoCallHandler.SERVER, object : NexmoRequestListener<NexmoCall> {
override fun onSuccess(call: NexmoCall?) {
runOnUiThread {
hideUI()
endCallButton.visibility = View.VISIBLE
}
onGoingCall = call
onGoingCall?.addCallEventListener(object : NexmoCallEventListener {
override fun onMemberStatusUpdated(callStatus: NexmoCallMemberStatus, nexmoMember: NexmoMember) {
if (callStatus == NexmoCallMemberStatus.COMPLETED || callStatus == NexmoCallMemberStatus.CANCELLED) {
onGoingCall = null
runOnUiThread {
hideUI()
startCallButton.visibility = View.VISIBLE
}
}
}
override fun onMuteChanged(nexmoMediaActionState: NexmoMediaActionState, nexmoMember: NexmoMember) {}
override fun onEarmuffChanged(nexmoMediaActionState: NexmoMediaActionState, nexmoMember: NexmoMember) {}
override fun onDTMF(dtmf: String, nexmoMember: NexmoMember) {}
})
}
override fun onError(apiError: NexmoApiError) {
}
})
}
Wenn der Anruf beendet wird (unabhängig davon, wer den Anruf beendet - die App oder der Anrufer), wird die Benutzeroberfläche aktualisiert, um den aktuellen Anrufstatus wiederzugeben (make a call button wird angezeigt und END CALL ist ausgeblendet).
Aufruf in der Anwendung beenden
In der MainActivity füllen den Körper des hangup Methode:
private fun hangup() {
onGoingCall?.hangup(object : NexmoRequestListener<NexmoCall> {
override fun onSuccess(call: NexmoCall?) {
onGoingCall = null
}
override fun onError(apiError: NexmoApiError) {
}
})
}
Beachten Sie, dass Sie nach erfolgreichem Auflegen den Wert des Parameters onGoingCall Eigenschaft auf Null zurück.
Bauen und Ausführen
Drücken Sie die Ctrl + R Tasten, um die Anwendung zu erstellen und auszuführen. Starten und beenden Sie den Aufruf, um die Änderungen der Benutzeroberfläche zu sehen.
In-App-Sprachanrufe tätigen
Tätigen Sie mit dem Android Client SDK einen Sprachanruf von einer Webanwendung zu einem Telefon.