Pianificare il supporto di diversi tipi di occhiali audio e occhiali con display

Dispositivi XR applicabili
Queste indicazioni ti aiutano a creare esperienze per questi tipi di dispositivi XR.
Audio e
occhiali con display

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

Per creare un'esperienza utente fluida su una serie di dispositivi, pianifica la tua Activity per gli occhiali in modo da verificare le diverse funzionalità dei dispositivi. Questo approccio semplifica lo sviluppo consentendoti di creare un'unica attività che adatta il proprio comportamento, anziché più attività destinate a dispositivi specifici.

Comprendi il ciclo di vita delle attività previste

L'attività che crei per gli occhiali audio e gli occhiali con display 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 dell'attività standard, ma include anche diverse differenze chiave che supportano le funzionalità di diversi tipi di occhiali audio e occhiali con display.

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

Di seguito è riportata una suddivisione degli eventi chiave, con callout per le interazioni specifiche per le attività proiettate su occhiali audio e occhiali con display:

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

Comprendi in che modo lo stato del display 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, passando in genere a onPause() o onStop(). Al contrario, il ciclo di vita dell'attività proiettata non cambia quando il display degli occhiali 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 dello stato dell'attività attivati da diversi eventi di sistema e utente si comportano come di consueto.

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

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

  • Ascolto di audio, feedback acustici o altri segnali sonori.
  • 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 audio o con display 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 attenzione per un breve periodo di tempo, rimuove l'attività dal primo piano e, infine, attiva onStop().

Informazioni sulle attività e sui contesti previsti

Gli occhiali audio e gli occhiali con display 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 paio di occhiali connessi, ad esempio i sensori o la fotocamera, anziché con l'hardware dello smartphone. Mentre sviluppi esperienze per occhiali audio e occhiali con display, 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à chiamante:

  • Per le attività proiettate: se il codice della tua app viene eseguito dall'interno della tua attività proiettata, il contesto dell'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 Telefono o servizi: se una parte della tua app al di fuori dell'attività proiettata (ad esempio un'attività Telefono 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ù, consulta Utilizza un contesto proiettato per accedere all'hardware su occhiali audio e occhiali con display.

Informazioni sulle API device-aware

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

  • CameraManager: accede alla fotocamera degli occhiali.
  • SensorManager: recupera i dati dei sensori (ad esempio i dati del giroscopio o dell'accelerometro) dagli occhiali.
  • AudioManager: gestisce gli stream audio, il volume e il routing sugli occhiali.