Inicializar o cliente
VoiceClient é a classe principal usada para interagir com o Client SDK do Android. Antes de utilizá-la, é necessário inicializar o cliente fornecendo uma instância do Android Contexto classe.
No topo do MainActivity definição de classe client propriedade que armazenará a referência ao cliente e otherUser propriedade que conterá o nome do segundo usuário (aquele para quem a chamada será feita):
private lateinit var client: VoiceClient
private var otherUser: String = ""
Localize o onCreate método no MainActivity definir classe e inicializar VoiceClient:
client = VoiceClient(this.application.applicationContext)
val config = VGClientConfig(ClientConfigRegion.US)
config.enableWebsocketInvites = true
client.setConfig(config)
NOTA: O enableWebsocketInvites O sinalizador na configuração do cliente não deve ser usado em ambiente de produção. Habilite as notificações push para garantir que você receba chamadas mesmo quando o aplicativo estiver em segundo plano. Consulte o notificações push guia para obter mais informações.
O IDE exibirá um aviso sobre a referência não resolvida:

Posicione o cursor sobre o texto em vermelho e pressione Alt + Enter para importar a referência.
Agora no MainActivity Adicionar um método auxiliar à classe que oculte todos os itens da interface do usuário:
private fun hideUI() {
val content = findViewById<LinearLayout>(R.id.content)
content.forEach { it.visibility = View.GONE }
}
Por fim, preencha o corpo dos dois métodos para permitir o login do usuário. Certifique-se de substituir ALICE_JWT e BOB_JWT com os JWTs que você criou em uma etapa anterior:
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
}
}
}
}
NOTA O prazo de validade do token foi definido para 6 horas; portanto, você precisará gerar um novo caso ele já esteja vencido.
Compilar e executar
Imprensa Ctrl + R botões para criar e executar o aplicativo.
Após o login bem-sucedido do usuário, você verá waiting for incoming call texto e make a call botão:

Fazendo uma chamada de voz de aplicativo para aplicativo
Faça uma chamada de voz a partir de um aplicativo Android para o mesmo aplicativo Android instalado em outro dispositivo usando o Client SDK.