Ao longo do dia, os óculos com IA de um usuário podem perder a conexão com o dispositivo host (como o smartphone) ou ficar temporariamente indisponíveis se forem retirados. Para considerar esses tipos de mudanças na disponibilidade do dispositivo, seu 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, pare de projetar conteúdo da interface nos óculos de IA quando o estado mudar para
CREATED.