Con el kit de desarrollo de software (SDK) de TeamViewer puedes utilizar la funcionalidad completa de Assist AR y proporcionar la mejor experiencia de asistencia remota de RA a tus clientes, incorporando las capacidades de asistencia remota de RA dentro de tus propias aplicaciones móviles.
El SDK te permite tener conexiones seguras y que cumplan con la GDPR con los dispositivos de tus clientes.
Este artículo se aplica a tod@s l@s usuari@s de TeamViewer Assist AR .
Si no tienes una cuenta en TeamViewer, sigue los siguientes pasos para crear una:
1. Vete a https://login.teamviewer.com/ e inicia sesión con tu cuenta de TeamViewer.
2. En la parte inferior de la página, haz clic en Aplicaciones.
3. Haz clic en el botón Crear aplicación.
4. Activar el Token SDK móvil, introducir un nombre y (opcional) añadir una breve descripción.
5. Activar Android.
6. Haz clic en Crear.
Tu token se muestra al abrir la aplicación creada:
Copia este token en tu portapapeles y pégalo en un lugar seguro.
🚨IMPORTANTE: ¡No compartas esta ficha con nadie!
El SDK está disponible para los clientes con una licencia de Assist AR Professional y es distribuido por el equipo de soporte de TeamViewer.
Integra tu SDK móvil en TeamViewer
1. TeamViewer Mobile SDK para Android contiene los siguientes archivos:
2. Crea una carpeta libs bajo el directorio de tu aplicación y copia allí los archivos *.aar.
📌Nota:El SDK es compatible con las siguientes arquitecturas: armeabi-v7a, arm64-v8a, x86, x86_64.
3. Activa ViewBinding y añade las siguientes dependencias al build.gradle de tu aplicación:
android { buildFeatures { viewBinding true } } dependencies { implementation files('libs/TeamViewerSdk.aar') implementation files('libs/AssistARSessionUI.aar') //(Add only if you plan to use AssistAR(AssistAR) Session // Add dependencies of AssistARSessionUI.aar(Add only if you plan to use AssistAR Session): runtimeOnly "androidx.camera:camera-camera2:1.0.2" runtimeOnly "androidx.camera:camera-lifecycle:1.0.2" runtimeOnly "androidx.constraintlayout:constraintlayout:2.0.4" runtimeOnly "androidx.fragment:fragment-ktx:1.3.6" runtimeOnly "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1" runtimeOnly "androidx.work:work-runtime-ktx:2.5.0" runtimeOnly "com.google.android.material:material:1.4.0" runtimeOnly "de.javagl:obj:0.3.0" runtimeOnly "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31" runtimeOnly "com.google.android.gms:play-services-mlkit-text-recognition:17.0.0" runtimeOnly "com.squareup.picasso:picasso:2.8" }
Para obtener una lista actualizada de las dependencias, por favor revise AssistARSessionUI-docs/index.html que será parte del paquete SDK que recibirá de TeamViewer.
4. Construye el objeto TeamViewerSdk:
teamViewerSdk = TeamViewerSdk.Builder(context) .withToken(SDK_TOKEN) .withAuthenticationCallback(sdkAuthenticationCallback) .withSessionCallback(sdkSessionCallback) .withErrorCallback(sdkErrorCallback) .withOnlineStateCallback(onlineStateCallback) .withMicInitiallyMuted(true) .build() }
El ejemplo anterior muestra la creación del objeto teamViewerSdk utilizando el SDK_TOKEN (utilice el SDK_TOKEN creado anteriormente en el paso 7 de la sección "Generar la clave de la API")
Por favor, visita ScreenSharingSdk-docs/com/teamviewer/sdk/screensharing/TeamViewerSdk.Builder.html para conocer más detalles sobre estos métodos de construcción. La documentación formará parte del paquete del SDK que recibirá de TeamViewer.
5. Conectar con un código de sesión
El SDK compartido proporciona un método para establecer una conexión con un código de sesión. Este código de sesión puede ser de dos tipos:
6) Crea códigos de sesión en tu client TeamViewer (seleccione el tipo de soporte remoto o AssistAR en función de la sesión que desee) o a través de la API REST de TeamViewer.
teamViewerSdk.connectToSessionCode(sessionCode)
Una vez que session Code este en línea, se puede iniciar una conexión desde el lado del cliente TeamViewer.
El estado del código de la sesión puede comprobarse mediante OnlineStateCallback
(ScreenSharingSdk-docs/com/teamviewer/sdk/screensharing/TeamViewerSdk.Builder.html#withOnlineStateCallback
(com.teamviewer.sdk.screensharing.OnlineStateCallback).
OnlineStateCallback es útil para recibir notificaciones del estado de conexión/desconexión del SDK:
private val onlineStateCallback = OnlineStateCallback { onlineState -> val isSdkOnline = OnlineStateCallback.OnlineState.OFFLINE val isSdkOffline = OnlineStateCallback.OnlineState.ONLINE val isSessionCodeConnected = OnlineStateCallback.OnlineState.CONNECTED }
ErrorCallback es útil para manejar los códigos de error enviados por el SDK en caso de que el código de sesión no sea válido, haya expirado o se haya cerrado.
( ScreenSharingSdk-docs/com/teamviewer/sdk/screensharing/TeamViewerSdk.Builder.html#withErrorCallback
(com.teamviewer.sdk.screensharing.ErrorCallback))
private val sdkErrorCallback = ErrorCallback { errorCode -> val invalid = errorCode == ErrorCallback.ErrorCode.SESSION_CODE_INVALID val expired = errorCode == ErrorCallback.ErrorCode.SESSION_CODE_EXPIRED val closed = errorCode == ErrorCallback.ErrorCode.SESSION_CODE_CLOSED }
El SDK proporciona métodos de devolución de llamadas para reaccionar a los eventos de conexión entrantes.
AuthenticationCallback es útil para manejar las conexiones entrantes.
El parámetro AuthenticationData contiene el nombre del colaborador y una función de devolución de llamada para permitir o rechazar la conexión entrante.
private val sdkAuthenticationCallback = object : AuthenticationCallback { override fun onAuthentication(data: AuthenticationData?) { //set true to accept call, set false to reject call data?.callback?.onAuthenticationResult(true) Logging.info(TAG, "TeamViewer connected to ${data?.partnerName}") } override fun onAuthenticationCanceled() { // Is called when TeamViewer Authentication was cancelled from TeamViewer client/expert side } }
Si se acepta la conexión entrante, se establece la correspondiente conexión TeamViewer.
Una vez iniciada la conexión en el lado TeamViewer, el SDK recibe una notificación sobre este intento de conexión a través de SessionCallback.
I) AssistARSession(AssistARSession):
Para las sesiones de AssistAR asegúrese de ->
private val sdkSessionCallback = object : SessionCallback { override fun onSessionStarted(session: TeamViewerSession?) { if (session is AssistARSession) { AssistARSessionUI.currentSession = session val intent = AssistARSessionUI.createIntentForAssistARSessionActivity(context, "StorageFolderName") intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK context.startActivity(intent) } if (session is ScreenSharingSession) { //Request microphone permission if you intend to use VOIP with ScreenShare Session } } override fun onSessionEnded() { Logging.info(TAG, "TeamViewer Session ended") AssistARSessionUI.currentSession = null } }
Pasar storageFolderName al método createIntentForAssistARSessionActivity aquí es obligatorio, ya que es el nombre de la carpeta donde se almacenarán los documentos compartidos bajo la carpeta Downloads. Para más detalles, consulta: AssistARSessionUI-docs/-pilot-session-u-i/com.teamviewer.sdk.assistarsessionui/-assist-a-r-session-u-i/create-intent-for-assist-a-r-session-activity.html
II) ScreenSharingSession:
ScreenSharingSession requiere solicitar el permiso del micrófono en OnSessionStarted() si se pretende utilizar VOIP.
El método constructor withLogger(Logger callback) establece una llamada de retorno de Logger a la que se delega toda la salida de registro de TeamViewer Sdk.
Para comprobar los detalles de esta devolución de llamada y otras devoluciones de llamada adicionales disponibles con el constructor Sdk por favor visite ScreenSharingSdk-docs/com/teamviewer/sdk/screensharing/TeamViewerSdk.Builder.html.