Visión general
En esta guía aprenderás a añadir el Client SDK a tu aplicación Android.
Requisitos previos
El Client SDK requiere un nivel de API de Android mínimo de 23.
Para añadir el Client SDK a su proyecto
Abra su proyecto Android
Abra el código base de su proyecto Android en su IDE.
Añadir dependencias
En primer lugar, necesitas añadir un repositorio Maven URL personalizado a tu configuración de Gradle.
NOTA: Hay dos lenguajes utilizados para definir los scripts de construcción de Gradle - Groovy (build.gradle ) y Kotlin Gradle Script (build.gradle.kts ). Un proyecto Kotlin-Android puede seguir utilizando Groovy como lenguaje para los scripts de compilación. Comprueba la extensión del archivo para determinar el idioma de los archivos de script de compilación.
Añada la siguiente URL en su proyecto build.gradle o build.gradle.kts archivo:
//...
allprojects {
repositories {
google()
mavenCentral()
maven("https://artifactory.ess-dev.com/artifactory/gradle-dev-local")
}
}
//...
allprojects {
repositories {
google()
mavenCentral()
maven {
url "https://artifactory.ess-dev.com/artifactory/gradle-dev-local"
}
}
}
NOTA: La versión Arctic Fox de Android Studio crea nuevos proyectos con Gradle 7 o superior. Si has creado una nueva aplicación añade la URL de maven a repositorios en settings.gradle en el archivo dependencyResolutionManagement bloque.
Ahora añade el Client SDK a tu proyecto. Añade la siguiente dependencia en el nivel de tu aplicación build.gradle (normalmente app/build.gradle):
dependencies {
implementation("com.nexmo.android:client-sdk:4.0.0")
}
dependencies {
implementation 'com.nexmo.android:client-sdk:4.0.0'
}
NOTA: Las versiones del SDK >=4 utilizan una versión más reciente de WebRTC como dependencia. Es posible que tenga que aumentar la memoria asignada a la JVM en el archivo gradle.properties en el archivo org.gradle.jvmargs ajuste.
Establecer Java 1.8
Establezca Java 1.8 en el nivel de su aplicación build.gradle o build.gradle.kts (normalmente app/build.gradle o 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()
}
}
android {
// ...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
// Only for Kotlin projects
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
Añadir permisos
Para utilizar las funciones In-App Voice, añade permisos de audio mediante el siguiente procedimiento:
- Añada los permisos necesarios al
AndroidManifest.xmlarchivo:

<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>
Permisos de tiempo de ejecución
- Para los dispositivos que ejecutan Android versión 6.0 Marshmallow (nivel de API 23) o superior, debe solicitar la aplicación
RECORD_AUDIOen tiempo de ejecución:
// this is the current activity
val callsPermissions = arrayOf(Manifest.permission.RECORD_AUDIO)
ActivityCompat.requestPermissions(this, callsPermissions, 123)
// this is the current activity
String[] callsPermissions = new String[]{Manifest.permission.RECORD_AUDIO};
ActivityCompat.requestPermissions(this, callsPermissions, 123);
- Para los dispositivos que ejecutan la versión 12 de Android (nivel de API 31) o superior, también debe solicitar la aplicación
READ_PHONE_STATEen tiempo de ejecución:
// this is the current activity
val callsPermissions = arrayOf(Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_PHONE_STATE)
ActivityCompat.requestPermissions(this, callsPermissions, 123)
// this is the current activity
String[] callsPermissions = new String[]{Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_PHONE_STATE};
ActivityCompat.requestPermissions(this, callsPermissions, 123);
Más información sobre la solicitud de permisos de ejecución en Android aquí.
Uso de NexmoClient en su aplicación
Creación de NexmoClient
Asegúrese de crear la instancia de NexmoClient antes de utilizarla.
NexmoClient.Builder().build(context)
NexmoClient.Builder().build(context);
Configuración de la escucha de conexión
Establecer NexmoConnectionListener que le notificará cualquier cambio en la conexión al SDK y la disponibilidad de su funcionalidad:
NexmoClient().get().setConnectionListener { connectionStatus, connectionStatusReason ->
Log.d("TAG", "Connection status changed: $connectionStatus $connectionStatusReason")
}
NexmoClient().get().setConnectionListener { newConnectionStatus, connectionStatusReason ->
Log.d("TAG", "Connection status changed: " + connectionStatus + " " + connectionStatusReason);
}
Iniciar sesión en NexmoClient
Después de inicializar NexmoClientes necesario iniciar sesión en él, utilizando un jwt token de usuario. Esto se describe en el tema sobre JWT y ACL.
Sustituya el token para autenticar al usuario correspondiente:
NexmoClient.get().login("JWT token")
NexmoClient.get().login("JWT token");
Una vez iniciada la sesión con éxito, el usuario conectado estará disponible a través de NexmoClient.get().getUser().
Conclusión
Ha añadido el Client SDK a su aplicación Android, lo ha inicializado y ha iniciado sesión en un servidor NexmoClient instancia.
En la aplicación de producción buen lugar para inicializar NexmoClient es Android personalizado Aplicaciones clase. Más tarde podrá recuperar NexmoClient instancia utilizando NexmoClient.get() y utilizar NexmoClient funcionalidad.
Ver también
- Configuración del centro de datos - esta es una configuración opcional avanzada que puede llevar a cabo después de añadir el SDK a su aplicación.