Kotlin

クライアントの初期化

ボイスクライアント は、AndroidクライアントSDKとのやりとりに使用されるメインクラスです。使用する前に、AndroidクライアントSDKのインスタンスを提供してクライアントを初期化する必要があります。 コンテクスト クラスである。

のトップにある。 MainActivity クラス定義 client クライアントへの参照を保持するプロパティと otherUser プロパティは、2番目のユーザー(呼び出し先のユーザー)の名前を保持する:

private lateinit var client: VoiceClient
private var otherUser: String = ""

を見つける。 onCreate メソッドの MainActivity クラスを初期化する。 VoiceClient:

client = VoiceClient(this.application.applicationContext)
val config = VGClientConfig(ClientConfigRegion.US)
config.enableWebsocketInvites = true
client.setConfig(config)

注: について enableWebsocketInvites フラグを使用しないでください。プッシュ通知を有効にして、アプリケーションがバックグラウンドでも着信を受け取れるようにしてください。詳細は プッシュ通知 のガイドを参照されたい。

IDEは未解決の参照に関する警告を表示します:

赤い文字の上にキャレットを置き Alt + Enter をインポートする。

現在は MainActivity クラスに、すべてのUIアイテムを非表示にするヘルパー・メソッドを追加する:

private fun hideUI() {
    val content = findViewById<LinearLayout>(R.id.content)
    content.forEach { it.visibility = View.GONE }
}

最後に、ユーザーのログインを許可する2つのメソッドの本体を埋めます。必ず ALICE_JWT そして BOB_JWT を、前のステップで作成したJWTで置き換える:

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
            }
        }
    }
}

トークンの有効期限は6時間に設定されているので、古すぎる場合は新しいトークンを生成する必要があります。

ビルド&ラン

プレス Ctrl + R ボタンをクリックし、アプリをビルドして実行する。

ログインに成功すると、次のように表示されます。 waiting for incoming call テキストと make a call ボタンをクリックする:

Make a call