Os diferentes tipos de óculos com áudio e com tela têm recursos distintos. Por exemplo, embora todos os óculos com áudio e com tela ofereçam experiências de áudio por voz, apenas os óculos com tela 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 integrada em vários dispositivos, planeje o
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 voltadas para dispositivos específicos.
Entender o ciclo de vida das atividades projetadas
A atividade que você cria para óculos com áudio e óculos com tela não é executada diretamente no dispositivo, mas é projetada nele por um dispositivo host (como o smartphone do usuário). As atividades dedicadas que você cria para essa finalidade são atividades projetadas. O ciclo de vida das atividades projetadas é baseado no ciclo de vida padrão, mas também inclui várias diferenças importantes que dão suporte aos recursos de diferentes tipos de óculos com áudio e óculos com tela.
Confira um resumo dos principais eventos, com destaque para as interações específicas de atividades projetadas para óculos com áudio e óculos com tela:
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á começando 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 entradas do touchpad ou de botões.
- 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 entradas.
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
é desligada, geralmente passando para onPause() ou onStop(). Por
outro lado, o ciclo de vida da atividade projetada não muda quando a tela dos óculos
é ligada ou desligada. Esse comportamento significa que a atividade projetada continua
em execução no estado "Iniciada" ou "Retomada", mesmo quando a tela está desligada, 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 habitual.
Entender como o reconhecimento do usuário afeta sua atividade projetada
Um usuário pode estar ciente da sua atividade projetada, mesmo que ela não esteja visível. Percepção se refere a todas as maneiras como um usuário pode perceber e interagir com as experiências do app, incluindo:
- Ouvir áudio, feedback audível ou outras indicações sonoras.
- Ações do app que acionam um LED voltado ao usuário, como um indicador de privacidade se o app acessa a câmera ou o microfone.
Nessas situações, o usuário sabe que os óculos com áudio ou com tela estão ativos e respondendo, mesmo que não esteja 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 do touchpad ou está recebendo o envio de entrada principal.
Enquanto o usuário estiver ciente do app, a atividade vai permanecer ativa e em
primeiro plano. Se o sistema não detectar nenhum indicador de reconhecimento por um
curto período, ele vai remover a atividade do primeiro plano e,
por fim, acionar onStop().
Entender as atividades e os contextos projetados
Os óculos com áudio e com tela são tratados como um dispositivo conectado que amplia
os recursos do smartphone do usuário. Um contexto projetado é um Context que reconhece o dispositivo e permite que os apps interajam com o hardware de um óculos conectado, como sensores ou câmera, em vez do hardware do smartphone. Ao desenvolver experiências para óculos com áudio e óculos com tela, seu
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 app Telefone: se uma parte do app fora da atividade projetada (como uma atividade ou um serviço de app Telefone) precisar acessar o hardware dos óculos, ela precisará receber explicitamente um contexto projetado. Para fazer isso, use o método
createProjectedDeviceContext().
Para mais informações, consulte Usar um contexto projetado para acessar o hardware em óculos com áudio e óculos com tela.
Noções básicas sobre APIs que reconhecem dispositivos
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 do smartphone
host:
CameraManager: acessa a câmera nos óculos.SensorManager: recupera dados do sensor (por exemplo, dados do giroscópio ou do acelerômetro) dos óculos.AudioManager: gerencia streams de áudio, volume e roteamento nos óculos.