Controllare le funzionalità del dispositivo in fase di runtime per gli occhiali AI

I diversi tipi di occhiali AI hanno funzionalità diverse. Dopo aver pianificato come supportare diversi tipi di dispositivi AI, puoi verificare le funzionalità del dispositivo in fase di runtime per offrire la migliore esperienza per il dispositivo di un utente.

Controllare se un dispositivo ha un display

Alcuni occhiali con AI hanno un display in cui la tua app può mostrare interfacce utente create con Jetpack Compose Glimmer. Il seguente esempio mostra come verificare se un dispositivo per occhiali ha un display:

val projectedDeviceController = ProjectedDeviceController.create(activity)

if (projectedDeviceController.capabilities.contains(CAPABILITY_VISUAL_UI)) {
    // Set up UX state machine for AI glasses that have a display.
} else {
    // Set up UX state machine for AI glasses that don't have a display.
}

Reagire alle modifiche dello stato di visualizzazione

Sugli occhiali AI con display, il display può scadere o l'utente può disattivarlo. Per progettare attività che vengono eseguite indipendentemente dal fatto che il display sia acceso o spento, utilizza addPresentationModeChangedListener per ricevere una notifica quando lo stato del display cambia. Puoi regolare l'attività per ottenere la quantità appropriata di informazioni audio a seconda dello stato di visualizzazione.

ProjectedDisplayController.create(activity).addPresentationModeChangedListener {
    presentationModeFlags ->

    val areVisualsOff = !presentationModeFlags.hasPresentationMode(VISUALS_ON)
}

Tieni il display acceso

Sugli occhiali AI con display, puoi richiedere al sistema di mantenere lo schermo acceso e impedire che si spenga utilizzando addLayoutParamsFlags.

var projectedDisplayController = ProjectedDisplayController.create(activity)

projectedDisplayController.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)