Diversi tipi di occhiali audio e occhiali con display hanno funzionalità diverse. Ad esempio, mentre tutti gli occhiali audio e gli occhiali 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 vasta gamma di dispositivi, pianifica i tuoi
Activity per gli occhiali in modo da verificare le diverse funzionalità dei dispositivi. Questo
approccio semplifica lo sviluppo consentendoti di creare un'attività che adatta
il proprio comportamento, anziché più attività che hanno come target dispositivi specifici.
Comprendere il ciclo di vita delle attività proiettate
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 per 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 chiave che supportano le funzionalità di diversi tipi di occhiali audio e occhiali con display.
Ecco una suddivisione degli eventi chiave, con callout per le interazioni specifiche per le attività proiettate su occhiali audio e occhiali con display:
onCreate()- Viene chiamato quando viene creata l'attività proiettata.
- Inizializza qui la UI Jetpack Compose Glimmer e altri componenti della tua app.
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ò utilizzare 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 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 audio e gli occhiali 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 è a conoscenza 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().
Comprendere le attività e i contesti proiettati
Gli occhiali audio e gli occhiali con display sono considerati 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 sensori, fotocamera o microfono, anziché con l'hardware dello smartphone. Quando 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à 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 su occhiali audio e occhiali con display.
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 anziché a quello dello smartphone host:
CameraManager: accede alla fotocamera 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.