Cómo trabajar con ARCore para Jetpack XR

ARCore para Jetpack XR permite que las apps funcionen con conceptos básicos de la realidad aumentada (RA), a través de primitivas de comprensión de escenas de bajo nivel y seguimiento de movimiento. Usa ARCore para Jetpack XR cuando crees experiencias de RA y necesites usar datos planares o fijar contenido a una ubicación fija en el espacio.

Comprende el ciclo de vida de Session

Se debe acceder a todos los objetos a los que hace un seguimiento ARCore para Jetpack XR a través de un Session. Al igual que el ciclo de vida de una actividad, los objetos Session también tienen un ciclo de vida que se debe mantener según el uso que haga tu app de las funciones de un objeto Session. Si tu app contiene una sola actividad habilitada para XR, considera controlar el ciclo de vida de Session con un componente que priorice el ciclo de vida.

Cómo acceder a un Session

Se debe crear un Session cuando se usa ARCore para Jetpack XR.

Cuando uses Jetpack Compose para XR, usa LocalSession para acceder a la sesión que se crea por ti.

Cómo reanudar una sesión

Se debe reanudar una sesión cuando tu app esté lista para controlar los cambios de estado de ARCore para Jetpack XR. En muchos casos, esto se hace en la devolución de llamada onResume() de tu actividad, pero es posible que tu app desee retrasar el procesamiento hasta que el usuario interactúe.

En el siguiente fragmento de código, se muestra un ejemplo de cómo reanudar una sesión.

when (val result = session.resume()) {
    is SessionResumeSuccess -> {
        // Session has been created successfully.
        // Attach any successful handlers here.
    }

    is SessionResumePermissionsNotGranted -> {
        // Request permissions in `result.permissions`.
    }
}

Consulta SessionResumeResult para conocer los motivos por los que un Session podría no reanudarse.

Cómo pausar una sesión

Cuando tu actividad pase a segundo plano, pausa el Session con [Session.pause()][Session.pause]. Si pausas una sesión, se detendrá temporalmente el seguimiento hasta que se reanude, lo que mantendrá el estado del sistema de percepción.

Cómo destruir una sesión

Para descartar un Session de forma permanente, usa [Session.destroy()][Session.destroy]. Esto libera los recursos que usa la sesión y destruye todos sus estados.

Consulta también