Diferentes tipos de óculos de áudio e display têm recursos diferentes. Por exemplo, embora todos os óculos de áudio e display ofereçam experiências de áudio por voz, apenas os óculos de display têm uma tela em que o app pode mostrar interfaces criadas com o Jetpack Compose Glimmer.
Para criar uma experiência do usuário perfeita em vários dispositivos, planeje sua
Activity para óculos para verificar diferentes recursos do dispositivo. Essa abordagem simplifica o desenvolvimento, permitindo que você crie uma atividade que adapta o comportamento, em vez de várias atividades direcionadas a dispositivos específicos.
Entender o ciclo de vida das atividades projetadas
A atividade criada para óculos de áudio e display não é executada diretamente no dispositivo, mas é projetada para o dispositivo de um dispositivo host (como o smartphone do usuário). As atividades dedicadas criadas para essa finalidade são atividades projetadas. O ciclo de vida das atividades projetadas é criado com base no ciclo de vida de atividades padrão, mas também inclui várias diferenças importantes que oferecem suporte aos recursos de diferentes tipos de óculos de áudio e display.
Confira um detalhamento dos principais eventos, com frases de destaque para interações específicas para atividades projetadas em óculos de áudio e display:
onCreate()- Chamado quando a atividade projetada é criada.
- Inicialize a interface do Jetpack Compose Glimmer do app e outros componentes aqui.
onStart()- Chamado quando a atividade projetada está sendo iniciada e o usuário está ciente do app.
onResume()- Chamado quando a atividade projetada recupera o foco. Enquanto a atividade está em foco, ela é interativa e pode consumir entrada de touchpad ou botão.
- Chamado quando os óculos são colocados de volta (colocados), depois de terem sido retirados da cabeça (retirados).
onPause()- Chamado quando a atividade projetada perde o foco, mas o usuário ainda está ciente do app. Enquanto a atividade está fora de foco, ela não é interativa e para de consumir a entrada.
onStop()- Chamado quando o sistema acredita que o usuário não está mais ciente do seu app.
- Chamado quando os óculos são removidos da cabeça (retirados).
onDestroy()- Chamado quando a atividade projetada está prestes a ser destruída. Quando isso é chamado, o sistema libera todos os recursos vinculados à atividade.
Entender como o estado de exibição afeta o ciclo de vida da atividade projetada
Em uma Activity padrão, o estado do ciclo de vida muda quando a tela do dispositivo é desativada, geralmente passando para onPause() ou onStop(). Em contraste, o ciclo de vida da atividade projetada não muda quando a tela dos óculos é ativada ou desativada. Esse comportamento significa que a atividade projetada continua sendo executada no estado "Iniciado" ou "Retomado", mesmo quando a tela está desativada, o que permite que as experiências de áudio do app continuem sem interrupção.
Outras mudanças de estado da atividade acionadas por diferentes eventos do sistema e do usuário se comportam da maneira usual.
Entender como a conscientização do usuário afeta a atividade projetada
Um usuário pode estar ciente da atividade projetada, mesmo que ela não esteja visível. Conscientização se refere a todas as maneiras pelas quais um usuário pode sentir e interagir com as experiências do app, incluindo o seguinte:
- Ouvir áudio, feedback audível ou outras dicas de som.
- Ações do app que acionam um LED voltado para o usuário, como um indicador de privacidade, se o app acessar a câmera ou o microfone.
Nessas situações, o usuário está ciente de que os óculos de áudio e display estão ativos e respondendo, mesmo que não estejam olhando para uma tela:
- O estado
onStart()para atividades projetadas significa que a atividade está ativa. - O estado
onResume()significa que a atividade é interativa e pode receber entrada de touchpad ou está recebendo o envio de entrada principal.
Enquanto o usuário estiver ciente do app, a atividade permanecerá ativa e em primeiro plano. Se o sistema não detectar nenhum sinal de conscientização por um
curto período, ele removerá a atividade do primeiro plano e
por fim acionará onStop().
Entender atividades e contextos projetados
Os óculos de áudio e display são tratados como um dispositivo conectado que estende os recursos do smartphone de um usuário. Um contexto projetado é um com reconhecimento de dispositivo
Context que permite que os apps interajam com o hardware em um dispositivo de óculos conectado, como sensores, câmera ou microfone, em vez do hardware do smartphone. Ao desenvolver experiências para óculos de áudio e display, o app precisa usar um contexto projetado para acessar o hardware dos óculos.
Um contexto projetado pode ser concedido automaticamente ao app, dependendo do contexto da atividade de chamada:
Para atividades projetadas: se o código do app estiver sendo executado na atividade projetada, o contexto da atividade já será um contexto projetado. Nesse cenário, as chamadas feitas nessa atividade já podem acessar o hardware dos óculos.
Para apps ou serviços de smartphone: se uma parte do app fora da atividade projetada (como uma atividade ou um serviço de smartphone) precisar acessar o hardware dos óculos, ela precisará receber explicitamente um contexto projetado. Para fazer isso, use o
createProjectedDeviceContext()método.
Para mais informações, consulte Usar um contexto projetado para acessar o hardware em óculos de áudio e display.
Entender APIs com reconhecimento de dispositivo
Algumas APIs padrão do Android mudam o hardware do dispositivo que acessam, dependendo do Context da atividade de chamada. Quando essas APIs recebem um contexto projetado, elas acessam o hardware dos óculos em vez do hardware no dispositivo do smartphone host:
CameraManager: acessa a câmera nos óculos.SensorManager: recupera dados do sensor (por exemplo, dados do giroscópio ou acelerômetro) dos óculos.AudioManager: gerencia streams de áudio, volume e roteamento nos óculos.AudioRecord: captura áudio usando o microfone dos óculos.