Les lunettes d'IA ont des capacités différentes selon leur type. Par exemple, alors que toutes les lunettes IA proposent des expériences audio via la voix, certaines lunettes IA disposent également d'un écran sur lequel votre application peut afficher des UI conçues avec Jetpack Compose Glimmer.
Pour créer une expérience utilisateur fluide sur une gamme d'appareils de lunettes IA, planifiez votre Activity pour les lunettes afin de vérifier les différentes fonctionnalités des appareils.
Cette approche simplifie le développement en vous permettant de créer une activité qui adapte son comportement, plutôt que plusieurs activités ciblant des appareils spécifiques.
Comprendre le cycle de vie des activités projetées
L'activité que vous créez pour les lunettes IA ne s'exécute pas directement sur l'appareil, mais est projetée sur l'appareil à partir d'un appareil hôte (tel que le téléphone de l'utilisateur). Les activités dédiées que vous créez à cet effet sont des activités projetées. Le cycle de vie des activités projetées est basé sur le cycle de vie d'activité standard, mais il inclut également plusieurs différences clés qui prennent en charge les fonctionnalités de différents types de lunettes d'IA.

Voici une liste des événements clés, avec des encadrés pour les interactions spécifiques aux activités projetées sur les lunettes IA :
onCreate()- Appelé lorsque l'activité projetée est créée.
- Initialisez ici l'UI Glimmer Jetpack Compose de votre application et d'autres composants.
onStart()- Appelée lorsque l'activité projetée démarre et que l'utilisateur est conscient de l'application.
onResume()- Appelé lorsque l'activité projetée retrouve le focus. Lorsque l'activité est au premier plan, elle est interactive et peut consommer les entrées du pavé tactile ou des boutons.
- Appelée lorsque les lunettes sont remises (portées), après avoir été retirées de la tête (enlevées).
onPause()- Appelée lorsque l'activité projetée perd le focus, mais que l'utilisateur est toujours conscient de votre application. Lorsque l'activité n'est plus au premier plan, elle n'est plus interactive et cesse de consommer des entrées.
onStop()- Appelée lorsque le système estime que l'utilisateur n'est plus conscient de votre application.
- Appelée lorsque les lunettes sont retirées de la tête (enlevées).
onDestroy()- Appelé lorsque l'activité projetée est sur le point d'être détruite. Lorsque cette méthode est appelée, le système libère toutes les ressources liées à l'activité.
Comprendre l'impact de l'état d'affichage sur le cycle de vie de l'activité projetée
Dans un Activity standard, l'état du cycle de vie change lorsque l'écran de l'appareil s'éteint, passant généralement à onPause() ou onStop(). En revanche, le cycle de vie de l'activité projetée ne change pas lorsque l'écran des lunettes IA s'allume ou s'éteint. Cela signifie que votre activité projetée continue de s'exécuter à l'état "Démarrée" ou "Reprise", même lorsque l'écran est éteint, ce qui permet aux expériences audio de votre application de se poursuivre sans interruption.
Les autres modifications de l'état d'activité déclenchées par différents événements système et utilisateur se comportent de la manière habituelle.
Comprendre l'impact de la sensibilisation des utilisateurs sur votre activité prévue
Un utilisateur peut être au courant de votre activité prévue, même si elle n'est pas visible. La conscience fait référence à toutes les façons dont un utilisateur peut percevoir les expériences de votre application et interagir avec elles, y compris les suivantes :
- Écouter des contenus audio, des commentaires audibles ou d'autres signaux sonores.
- Actions d'application qui déclenchent une LED visible par l'utilisateur, comme un indicateur de confidentialité si votre application accède à l'appareil photo ou au micro.
Dans les situations suivantes, l'utilisateur sait que les lunettes d'IA sont actives et répondent, même s'il ne regarde pas un écran :
- L'état
onStart()pour les activités projetées signifie que l'activité est active. - L'état
onResume()signifie que l'activité est interactive et peut recevoir des entrées du pavé tactile ou qu'elle reçoit la distribution d'entrée principale.
Tant que l'utilisateur est conscient de votre application, votre activité reste active et au premier plan. Si le système ne détecte aucun signal de prise de conscience pendant une courte période, il supprime l'activité du premier plan et finit par déclencher onStop().
Comprendre les activités et les contextes projetés
Les lunettes IA sont considérées comme un appareil connecté qui étend les capacités du téléphone d'un utilisateur. Un contexte projeté est un Context compatible avec les appareils qui permet aux applications d'interagir avec le matériel d'un appareil à lunettes connecté, comme ses capteurs, sa caméra ou son micro, plutôt qu'avec le matériel du téléphone. Lorsque vous développez des expériences pour les lunettes IA, votre application doit utiliser un contexte projeté pour accéder au matériel des lunettes.
Un contexte projeté peut être accordé automatiquement à votre application en fonction du contexte de l'activité d'appel :
Pour les activités projetées : si le code de votre application s'exécute à partir de votre activité projetée, son propre contexte d'activité est déjà un contexte projeté. Dans ce scénario, les appels effectués dans cette activité peuvent déjà accéder au matériel des lunettes.
Pour les applications ou services téléphoniques : si une partie de votre application en dehors de votre activité projetée (comme une activité téléphonique ou un service) doit accéder au matériel des lunettes, elle doit obtenir explicitement un contexte projeté. Pour ce faire, utilisez la méthode
createProjectedDeviceContext().
Pour en savoir plus, consultez Utiliser un contexte projeté pour accéder au matériel des lunettes IA.
Comprendre les API adaptées aux appareils
Certaines API Android standards modifient le matériel de l'appareil auquel elles accèdent en fonction du Context de l'activité appelante. Lorsque ces API reçoivent un contexte projeté, elles accèdent au matériel des lunettes IA au lieu du matériel de l'appareil téléphonique hôte :
CameraManager: accède à la caméra des lunettes.SensorManager: récupère les données des capteurs (par exemple, les données du gyroscope ou de l'accéléromètre) des lunettes.AudioManager: gère les flux audio, le volume et le routage sur les lunettes.AudioRecord: capture le son à l'aide du micro des lunettes.