Ao longo do dia, os óculos com IA podem perder a conexão
com o dispositivo host (como o smartphone do usuário) ou ficar
temporariamente indisponíveis se o usuário tirar os óculos. Para considerar esses
tipos de mudanças na disponibilidade do dispositivo, o app pode usar a API XR Device
Availability, que consolida os indicadores de disponibilidade do dispositivo nos
valores Lifecycle.State padrão do Android. Use essa API para ajudar a gerenciar o roteamento de áudio, a ativação de hotword e saber quando esperar a entrada do usuário com base na disponibilidade dos óculos com IA.
Entender os estados do ciclo de vida
A tabela a seguir lista como os indicadores de disponibilidade do dispositivo são mapeados para os valores Lifecycle.State.
Estado do ciclo de vida |
Status do dispositivo |
Descrição |
|---|---|---|
|
Criado |
O objeto do ciclo de vida é criado, mas ainda não foi observado. |
|
Inativo |
O serviço está conectado, mas o usuário não está usando o dispositivo. |
|
Ativo |
O usuário está usando o dispositivo. |
|
Desconectado |
O dispositivo está desconectado ou a conexão de serviço foi perdida. |
Verificar e monitorar a disponibilidade do dispositivo
Para verificar e monitorar a disponibilidade de um dispositivo, use um contexto projetado com o estado do ciclo de vida para determinar como o app deve processar cada caso:
val xrDevice = XrDevice.getCurrentDevice(projectedContext) xrDevice.getLifecycle().currentStateFlow .takeWhile { it != Lifecycle.State.DESTROYED } .collect { state -> when (state) { Lifecycle.State.STARTED -> { /* Device is ACTIVE (worn) */ } Lifecycle.State.CREATED -> { /* Device is INACTIVE (not worn) */ } else -> { /* Handle other states */ } } } }
Pontos principais sobre o código
- Verificar uma conexão: antes de acessar o ciclo de vida do dispositivo, chame
ProjectedContext.isProjectedDeviceConnectedpara verificar se o dispositivo projetado está conectado ao dispositivo host. - Receber um
ProjectedContext: chameProjectedContext.createProjectedDeviceContextsomente depois de verificar a conexão e transmita esse contexto para a instânciaXrDevice. - Processar a invalidação do contexto: um novo
deviceIdé gerado sempre que um dispositivo projetado se conecta. Quando o estado atingeDESTROYED, oProjectedContextatual é inválido. Pare de usá-lo imediatamente e aguarde uma nova conexão. - Otimizar a bateria e os recursos: processe a funcionalidade do app normalmente
com base no estado do ciclo de vida para preservar os recursos do sistema e reduzir o consumo de bateria. Por exemplo, libere recursos específicos dos óculos, como um fluxo de dados da câmera, quando o estado fizer a transição de
STARTEDparaCREATED. O estadoCREATEDindica que o dispositivo não está mais sendo usado. Portanto, interromper esses processos é essencial para evitar o consumo elevado da bateria e promover a privacidade do usuário.