Recevoir un appel
Avant de passer un appel, ajoutons à l'application la possibilité de recevoir un appel. Ajouter onGoingCallID et callInviteID en haut de la page MainActivity classe :
private var onGoingCallID: CallId? = null
private var callInviteID: CallId? = null
Pour écouter les appels entrants, ajoutez incoming call listener à la fin de onCreate méthode à l'intérieur MainActivity classe :
client.setCallInviteListener { callId, from, channelType ->
callInviteID = callId
runOnUiThread {
hideUI()
answerCallButton.visibility = View.VISIBLE
rejectCallButton.visibility = View.VISIBLE
}
}
L'application va maintenant écouter l'événement d'appel entrant. Le code ci-dessus montre les boutons de réponse et de rejet de l'appel lorsque l'événement d'appel entrant est reçu. Notez que vous enregistrez callInviteID pour interagir ultérieurement avec l'appel.
Avant de pouvoir effectuer des actions à l'aide de l'interface utilisateur, vous devez également ajouter des récepteurs aux boutons. Ajoutez ce code à la fin de la section onCreate à l'intérieur MainActivity classe :
answerCallButton.setOnClickListener { answerCall() }
rejectCallButton.setOnClickListener { rejectCall() }
endCallButton.setOnClickListener { endCall() }
Pour répondre à l'appel, ajoutez answerCall méthode à l'intérieur MainActivity classe :
@SuppressLint("MissingPermission")
private fun answerCall() {
callInviteID?.let {
client.answer(it) {
err ->
when {
err != null -> {
connectionStatusTextView.text = err.localizedMessage
}
else -> {
onGoingCallID = it
hideUI()
endCallButton.visibility = View.VISIBLE
}
}
}
}
}
Après avoir répondu à l'appel, le end call s'affiche.
NOTE : Les SuppressLint est utilisée pour des raisons de simplicité. Dans l'application de production, vous devez vous assurer que les autorisations sont accordées avant de répondre à l'appel.
Pour rejeter l'appel, ajoutez rejectCall méthode à l'intérieur MainActivity classe :
private fun rejectCall() {
callInviteID?.let {
client.reject(it) { err ->
when {
err != null -> {
connectionStatusTextView.text = err.localizedMessage
}
else -> {
hideUI()
startCallButton.visibility = View.VISIBLE
waitingForIncomingCallTextView.visibility = View.VISIBLE
}
}
}
onGoingCallID = null
}
}
Pour mettre fin à l'appel, ajoutez endCall méthode à l'intérieur MainActivity classe :
private fun endCall() {
onGoingCallID?.let {
client.hangup(it) {
err ->
when {
err != null -> {
connectionStatusTextView.text = err.localizedMessage
}
else -> {
hideUI()
startCallButton.visibility = View.VISIBLE
waitingForIncomingCallTextView.visibility = View.VISIBLE
}
}
}
}
onGoingCallID = null
}
Remarquez qu'après avoir réussi à rejeter l'appel ou à y mettre fin, vous réglez le paramètre onGoingCall à la valeur null de la propriété.
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.