Übersicht

In dieser Anleitung erfahren Sie, wie Sie das Client SDK zu Ihrer Android-App hinzufügen.

Voraussetzungen

Für das Client SDK ist mindestens die Android-API-Stufe 23 erforderlich.

So fügen Sie das Client SDK zu Ihrem Projekt hinzu

Öffnen Sie Ihr Android-Projekt

Öffnen Sie die Codebasis Ihres Android-Projekts in Ihrer IDE.

Abhängigkeiten hinzufügen

Zunächst müssen Sie ein benutzerdefiniertes Maven-URL-Repository zu Ihrer Gradle-Konfiguration hinzufügen.

HINWEIS: Es gibt zwei Sprachen, die zur Definition von Gradle-Build-Skripten verwendet werden - Groovy (build.gradle Datei) und Kotlin Gradle Script (build.gradle.kts Datei). Ein Kotlin-Android-Projekt kann weiterhin Groovy als Sprache für die Build-Skripte verwenden. Bitte prüfen Sie die Dateierweiterung, um die Sprache für die Build-Skript-Dateien zu bestimmen.

Fügen Sie die folgende URL in Ihre Projektebene ein build.gradle oder build.gradle.kts Datei:

//...

allprojects {
    repositories {
        google()
        mavenCentral()
        maven("https://artifactory.ess-dev.com/artifactory/gradle-dev-local")
    }
} 

HINWEIS: Die Arctic Fox Version von Android Studio erstellt neue Projekte mit Gradle 7 oder neuer. Wenn Sie eine neue Anwendung erstellt haben, fügen Sie die Maven-URL zu den Repositories in settings.gradle Datei in der dependencyResolutionManagement Block.

Fügen Sie nun das Client SDK zu Ihrem Projekt hinzu. Fügen Sie die folgende Abhängigkeit in Ihrer App-Ebene hinzu build.gradle Datei (typischerweise app/build.gradle):

dependencies {
    implementation("com.nexmo.android:client-sdk:4.0.0")
}   

HINWEIS: SDK-Versionen >=4 verwenden eine neuere Version von WebRTC als Abhängigkeit. Möglicherweise müssen Sie den der JVM zugewiesenen Speicher in der Datei gradle.properties Datei in der org.gradle.jvmargs Umgebung.

Java 1.8 einstellen

Setzen Sie Java 1.8 in Ihrer Anwendungsebene build.gradle oder build.gradle.kts Datei (typischerweise app/build.gradle oder app/build.gradle.kts):

android {
    
    // ...

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }

    // Only for Kotlin projects
    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_1_8.toString()
    }
}  

Berechtigungen hinzufügen

Um die In-App Voice-Funktionen zu nutzen, fügen Sie mit dem folgenden Verfahren Audiorechte hinzu:

  1. Fügen Sie die erforderlichen Berechtigungen zur Datei AndroidManifest.xml Datei:
<manifest ...>
	<uses-permission android:name="android.permission.INTERNET" />
	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
	<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
	<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
	<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
	<uses-permission android:name="android.permission.RECORD_AUDIO" />
	<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
</manifest>

Laufzeitberechtigungen

  • Für Geräte mit Android Version 6.0 Marshmallow (API Level 23) oder höher sollten Sie die RECORD_AUDIO Erlaubnis zur Laufzeit:
// this is the current activity
val callsPermissions = arrayOf(Manifest.permission.RECORD_AUDIO)
ActivityCompat.requestPermissions(this, callsPermissions, 123)
  • Für Geräte mit Android-Version 12 (API-Level 31) oder höher sollten Sie auch die READ_PHONE_STATE Erlaubnis zur Laufzeit:
// this is the current activity
val callsPermissions = arrayOf(Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_PHONE_STATE)
ActivityCompat.requestPermissions(this, callsPermissions, 123)

Lesen Sie mehr über das Anfordern von Laufzeitberechtigungen unter Android hier.

Verwendung von NexmoClient in Ihrer App

Aufbau des NexmoClient

Stellen Sie sicher, dass Sie die NexmoClient-Instanz erstellen, bevor Sie sie verwenden.

NexmoClient.Builder().build(context)

Einstellung des Verbindungs-Listeners

Satz NexmoConnectionListener die Sie über alle Änderungen bei der Verbindung zum SDK und der Verfügbarkeit seiner Funktionen informiert:

NexmoClient().get().setConnectionListener { connectionStatus, connectionStatusReason ->
    Log.d("TAG", "Connection status changed: $connectionStatus $connectionStatusReason")
}

Anmeldung NexmoClient

Nach der Initialisierung NexmoClientmüssen Sie sich dort anmelden, indem Sie eine jwt Benutzer-Token. Dies wird beschrieben im Thema über JWTs und ACLs.

Ersetzen Sie das Token, um den betreffenden Benutzer zu authentifizieren:

NexmoClient.get().login("JWT token")

Nachdem die Anmeldung erfolgreich war, ist der angemeldete Benutzer über NexmoClient.get().getUser().

Schlussfolgerung

Sie haben das Client SDK zu Ihrer Android-App hinzugefügt, es initialisiert und sich bei einem NexmoClient Instanz.

In der Produktionsanwendung ein guter Ort für die Initialisierung NexmoClient ist benutzerdefiniert Android Applikation Klasse. Sie können später die NexmoClient Instanz mit NexmoClient.get() Methode und verwenden zusätzliche NexmoClient Funktionalität.

Siehe auch