Los diferentes tipos de lentes con IA tienen distintas capacidades. Por ejemplo, si bien todos los lentes con IA ofrecen experiencias de audio a través de la voz, algunos también tienen una pantalla en la que tu app puede mostrar IU creadas con Jetpack Compose Glimmer.
Para crear una experiencia del usuario fluida en una variedad de dispositivos de lentes con IA, planifica tu Activity para lentes y verifica las diferentes capacidades de los dispositivos.
Este enfoque simplifica el desarrollo, ya que te permite crear una actividad que adapta su comportamiento, en lugar de varias actividades que se dirigen a dispositivos específicos.
Comprende el ciclo de vida de las actividades proyectadas
La actividad que compilas para los lentes con IA no se ejecuta directamente en el dispositivo, sino que se proyecta en él desde un dispositivo host (como el teléfono del usuario). Las actividades específicas que creas para este propósito son actividades proyectadas. El ciclo de vida de las actividades proyectadas se basa en el ciclo de vida de actividad estándar, pero también incluye varias diferencias clave que admiten las capacidades de diferentes tipos de lentes con IA.
A continuación, se incluye un desglose de los eventos clave, con anotaciones para las interacciones específicas de las actividades que se proyectan en los lentes con IA:
onCreate()- Se llama cuando se crea la actividad proyectada.
- Aquí puedes inicializar la IU de Glimmer de Jetpack Compose de tu app y otros componentes.
onStart()- Se llama a este método cuando se inicia la actividad proyectada y el usuario es consciente de la app.
onResume()- Se llama cuando la actividad proyectada recupera el foco. Mientras la actividad está enfocada, se puede interactuar con ella y puede consumir la entrada del panel táctil o de los botones.
- Se llama cuando se vuelven a colocar los anteojos (se ponen) después de que se los quitaron de la cabeza (se sacaron).
onPause()- Se llama a este método cuando la actividad proyectada pierde el enfoque, pero el usuario sigue consciente de tu app. Mientras la actividad está desenfocada, no se puede interactuar con ella y deja de consumir entradas.
onStop()- Se llama cuando el sistema cree que el usuario ya no está al tanto de tu app.
- Se llama cuando se quitan los lentes de la cabeza (se desprenden).
onDestroy()- Se llama cuando la actividad proyectada está a punto de destruirse. Cuando se llama a este método, el sistema libera todos los recursos vinculados a la actividad.
Comprende cómo el estado de visualización afecta el ciclo de vida proyectado de la actividad
En un Activity estándar, el estado del ciclo de vida cambia cuando se apaga la pantalla del dispositivo, y suele pasar a onPause() o onStop(). En cambio, el ciclo de vida de la actividad proyectada no cambia cuando la pantalla de los lentes con IA se enciende o apaga. Este comportamiento significa que tu actividad proyectada sigue ejecutándose en el estado Started o Resumed incluso cuando la pantalla está apagada, lo que permite que las experiencias de audio de tu app continúen sin interrupciones.
Otros cambios de estado de actividad activados por diferentes eventos del sistema y del usuario se comportan de la manera habitual.
Comprende cómo la conciencia del usuario afecta tu actividad proyectada
Un usuario puede conocer tu actividad proyectada incluso si no es visible. La percepción se refiere a todas las formas en que un usuario puede sentir y experimentar las experiencias de tu app, incluidas las siguientes:
- Escuchar audio, comentarios audibles o cualquier otro indicador sonoro
- Acciones de la app que activan un LED visible para el usuario, como un indicador de privacidad si tu app accede a la cámara o al micrófono
En estas situaciones, el usuario sabe que los lentes con IA están activos y responden, incluso si no está mirando una pantalla:
- El estado
onStart()para las actividades proyectadas significa que la actividad está activa. - El estado
onResume()significa que la actividad es interactiva y puede recibir entrada del panel táctil, o bien que está recibiendo el envío de entrada principal.
Mientras el usuario conozca tu app, la actividad permanecerá activa y en primer plano. Si el sistema no detecta ningún indicador de conciencia durante un período breve, quita la actividad del primer plano y, finalmente, activa onStop().
Comprende las actividades y los contextos proyectados
Los lentes con IA se consideran un dispositivo conectado que extiende las capacidades del teléfono del usuario. Un contexto proyectado es un Context que reconoce el dispositivo y permite que las apps interactúen con el hardware de un dispositivo de anteojos conectado, como sus sensores, cámara o micrófono, en lugar del hardware del teléfono. A medida que desarrolles experiencias para los lentes con IA, tu app deberá usar un contexto proyectado para acceder al hardware de los lentes.
Se puede otorgar automáticamente un contexto proyectado a tu app según el contexto de la actividad de llamada:
Para las actividades proyectadas: Si el código de tu app se ejecuta desde dentro de tu actividad proyectada, su propio contexto de actividad ya es un contexto proyectado. En esta situación, las llamadas realizadas dentro de esa actividad ya pueden acceder al hardware de los lentes.
Para apps o servicios de teléfono: Si una parte de tu app fuera de la actividad proyectada (como una actividad de teléfono o un servicio) necesita acceder al hardware de los lentes, debe obtener explícitamente un contexto proyectado. Para ello, usa el método
createProjectedDeviceContext().
Para obtener más información, consulta Cómo usar un contexto proyectado para acceder al hardware de los lentes con IA.
Información sobre las APIs que tienen en cuenta los dispositivos
Algunas APIs de Android estándares cambian el hardware del dispositivo al que acceden según el Context de la actividad que realiza la llamada. Cuando estas APIs reciben un contexto proyectado, acceden al hardware de los lentes con IA en lugar del hardware del teléfono host:
CameraManager: Accede a la cámara de los lentes.SensorManager: Recupera datos de los sensores (por ejemplo, datos del giroscopio o del acelerómetro) de los lentes.AudioManager: Administra los flujos de audio, el volumen y el enrutamiento en los lentes.AudioRecord: Captura audio con el micrófono de los lentes.