Pianificare il supporto di diversi tipi di occhiali AI

Dispositivi XR applicabili
Queste indicazioni ti aiutano a creare esperienze per questi tipi di dispositivi XR.
AI Glasses

I diversi tipi di occhiali AI hanno funzionalità diverse. Ad esempio, mentre tutti gli occhiali AI offrono esperienze audio tramite la voce, alcuni occhiali AI hanno anche un display in cui la tua app può mostrare interfacce utente create con Jetpack Compose Glimmer.

Per creare un'esperienza utente fluida su una gamma di occhiali AI, pianifica il tuo Activity per gli occhiali per verificare le diverse funzionalità del dispositivo. Questo approccio semplifica lo sviluppo consentendoti di creare un'unica attività che adatta il proprio comportamento, anziché più attività che hanno come target dispositivi specifici.

Informazioni sul ciclo di vita delle attività proiettate

L'attività che crei per gli occhiali con AI non viene eseguita direttamente sul dispositivo, ma viene proiettata sul dispositivo da un dispositivo host (ad esempio lo smartphone dell'utente). Le attività dedicate che crei a questo scopo sono attività proiettate. Il ciclo di vita delle attività proiettate si basa sul ciclo di vita standard delle attività, ma include anche diverse differenze fondamentali che supportano le funzionalità di diversi tipi di occhiali AI.

Figura 1. Gli eventi chiave nel ciclo di vita delle attività proiettate.

Di seguito è riportato un elenco degli eventi chiave, con callout per le interazioni specifiche delle attività proiettate sugli occhiali con AI:

  • onCreate()
    • Chiamato quando viene creata l'attività proiettata.
    • Inizializza l'interfaccia utente Glimmer di Jetpack Compose e altri componenti della tua app qui.
  • onStart()
    • Chiamato quando l'attività prevista sta per iniziare e l'utente è consapevole dell'app.
  • onResume()
    • Chiamato quando l'attività proiettata riacquista lo stato attivo. Mentre l'attività è in primo piano, è interattiva e può consumare l'input del touchpad o dei pulsanti.
    • Chiamato quando gli occhiali vengono indossati di nuovo (indossati), dopo essere stati precedentemente tolti dalla testa (rimossi).
  • onPause()
    • Chiamato quando l'attività proiettata perde lo stato attivo, ma l'utente è ancora consapevole della tua app. Mentre l'attività non è attiva, non è interattiva e smette di consumare input.
  • onStop()
    • Chiamato quando il sistema ritiene che l'utente non sia più consapevole della tua app.
    • Chiamato quando gli occhiali vengono rimossi dalla testa.
  • onDestroy()
    • Chiamato quando l'attività proiettata sta per essere eliminata. Quando viene chiamato questo metodo, il sistema rilascia tutte le risorse associate all'attività.

Comprendere in che modo lo stato di visualizzazione influisce sul ciclo di vita dell'attività proiettata

In un Activity standard, lo stato del ciclo di vita cambia quando lo schermo del dispositivo si spegne, in genere passando a onPause() o onStop(). Al contrario, il ciclo di vita dell'attività proiettata non cambia quando il display degli occhiali con AI si accende o si spegne. Questo comportamento significa che l'attività proiettata continua a essere eseguita nello stato Avviata o Ripresa anche quando il display è spento, il che consente alle esperienze audio della tua app di continuare senza interruzioni.

Altri cambiamenti di stato dell'attività attivati da diversi eventi di sistema e utente si comportano nel solito modo.

Comprendere in che modo la consapevolezza degli utenti influisce sull'attività prevista

Un utente può essere a conoscenza della tua attività prevista anche se non è visibile. Consapevolezza si riferisce a tutti i modi in cui un utente può percepire e interagire con le esperienze della tua app, tra cui:

  • Ascoltare audio, feedback sonori o altri segnali acustici.
  • Azioni dell'app che attivano un LED rivolto all'utente, ad esempio un indicatore della privacy se l'app accede alla fotocamera o al microfono.

In queste situazioni, l'utente è consapevole che gli occhiali con l'AI sono attivi e rispondono, anche se non sta guardando un display:

  • Lo stato onStart() per le attività proiettate indica che l'attività è attiva.
  • Lo stato onResume() indica che l'attività è interattiva e può ricevere input dal touchpad o sta ricevendo l'invio dell'input principale.

Finché l'utente è consapevole della tua app, la tua attività rimane attiva e in primo piano. Se il sistema non rileva segnali di consapevolezza per un breve periodo di tempo, l'attività viene rimossa dal primo piano e alla fine viene attivato onStop().

Informazioni sulle attività e sui contesti proiettati

Gli occhiali con AI sono trattati come un dispositivo connesso che estende le funzionalità dello smartphone di un utente. Un contesto proiettato è un Context che riconosce il dispositivo e consente alle app di interagire con l'hardware di un dispositivo di occhiali connesso, ad esempio i sensori, la videocamera o il microfono, anziché con l'hardware dello smartphone. Quando sviluppi esperienze per gli occhiali AI, la tua app deve utilizzare un contesto proiettato per accedere all'hardware degli occhiali.

Un contesto proiettato può essere concesso automaticamente alla tua app a seconda del contesto dell'attività di chiamata:

  • Per le attività proiettate: se il codice della tua app viene eseguito dall'interno dell'attività proiettata, il suo contesto di attività è già un contesto proiettato. In questo scenario, le chiamate effettuate all'interno di questa attività possono già accedere all'hardware degli occhiali.

  • Per app o servizi di telefonia: se una parte della tua app al di fuori dell'attività proiettata (ad esempio un'attività telefonica o un servizio) deve accedere all'hardware degli occhiali, deve ottenere esplicitamente un contesto proiettato. Per farlo, utilizza il metodo createProjectedDeviceContext().

Per saperne di più, vedi Utilizzare un contesto proiettato per accedere all'hardware degli occhiali con AI.

Informazioni sulle API sensibili al dispositivo

Alcune API Android standard cambiano l'hardware del dispositivo a cui accedono a seconda dell'Context dell'attività chiamante. Quando queste API ricevono un contesto proiettato, accedono all'hardware degli occhiali AI anziché all'hardware dello smartphone host:

  • CameraManager: accede alla videocamera degli occhiali.
  • SensorManager: recupera i dati dei sensori (ad esempio, giroscopio o accelerometro) dagli occhiali.
  • AudioManager: gestisce i flussi audio, il volume e il routing sugli occhiali.
  • AudioRecord: acquisisce l'audio utilizzando il microfono degli occhiali.