L'SDK Android XR è ora disponibile in Anteprima per gli sviluppatori. Vorremmo sapere cosa ne pensi. Per contattarci, visita la nostra
pagina di assistenza.
Verificare le funzionalità spaziali
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Le funzionalità spaziali possono cambiare man mano che gli utenti interagiscono con la tua app o con il sistema oppure possono essere modificate anche dalla tua app stessa, ad esempio passando allo spazio Casa o allo spazio Completo. Per evitare problemi, l'app deve verificare la presenza di funzionalità spaziali per determinare quali API sono supportate nell'ambiente corrente.
Verificare la presenza di funzionalità spaziali utilizzando Jetpack Compose per XR
Jetpack Compose per XR crea un Composition Local per verificare le funzionalità spaziali. Utilizzalo per verificare se l'interfaccia utente spaziale, l'audio spaziale, gli ambienti, il passthrough o i contenuti 3D sono attivati.
Puoi utilizzare LocalSpatialCapabilities.current
per verificare se le seguenti funzionalità spaziali sono attualmente disponibili:
L'esempio seguente mostra come verificare se l'interfaccia utente spaziale è attivata:
if (LocalSpatialCapabilities.current.isSpatialUiEnabled) {
Subspace {
SpatialPanel(
modifier = SubspaceModifier
.width(1488.dp)
.fillMaxHeight()
) {
AppContent()
}
}
} else {
AppContent()
}
Verificare la presenza di funzionalità spaziali utilizzando SceneCore
Quando utilizzi la libreria SceneCore, devi creare una sessione. Una volta creata la sessione, chiama spatialCapabilities
sulla sessione per eseguire una query sulle funzionalità spaziali attualmente disponibili.
Puoi anche scegliere di iscriverti a un callout,
addSpatialCapabilitiesChangedListener
che ti invia una notifica quando le funzionalità
spaziali sono cambiate.
// Example 1: check if enabling passthrough mode is allowed
if (xrSession.scene.spatialCapabilities.hasCapability(
SpatialCapabilities.SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL
)
) {
xrSession.scene.spatialEnvironment.preferredPassthroughOpacity = 1f
}
// Example 2: multiple capability flags can be checked simultaneously:
if (xrSession.scene.spatialCapabilities.hasCapability(
SpatialCapabilities.SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL and
SpatialCapabilities.SPATIAL_CAPABILITY_3D_CONTENT
)
) {
// ...
}
Vedi anche
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-08-23 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-08-23 UTC."],[],[],null,["# Check for spatial capabilities\n\nSpatial capabilities can change as users interact with your app or the system,\nor can even be changed by your app itself---for example, moving into Home Space or\nFull Space. To avoid issues, your app needs to check for spatial capabilities to\ndetermine which APIs are supported in the current environment.\n\nCheck for spatial capabilities using Jetpack Compose for XR\n-----------------------------------------------------------\n\nJetpack Compose for XR creates a Composition Local for checking spatial\ncapabilities. Use this to check whether spatial UI, spatial audio, environments,\npassthrough, or 3D content is enabled.\n\nYou can use [`LocalSpatialCapabilities.current`](/reference/kotlin/androidx/xr/compose/platform/package-summary#LocalSpatialCapabilities()) to check if the following\nspatial capabilities are currently available:\n\n- [`isSpatialUiEnabled`](/reference/kotlin/androidx/xr/compose/platform/SpatialCapabilities#isSpatialUiEnabled()): Indicates whether the application may create spatial UI elements (for example, `SpatialPanel`).\n- [`isContent3dEnabled`](/reference/kotlin/androidx/xr/compose/platform/SpatialCapabilities#isContent3dEnabled()): Indicates whether the application may create 3D objects.\n- [`isAppEnvironmentEnabled`](/reference/kotlin/androidx/xr/compose/platform/SpatialCapabilities#isAppEnvironmentEnabled()): Indicates whether the application may set the environment.\n- [`isPassthroughControlEnabled`](/reference/kotlin/androidx/xr/compose/platform/SpatialCapabilities#isPassthroughControlEnabled()): Indicates whether the application may control the passthrough state.\n- [`isSpatialAudioEnabled`](/reference/kotlin/androidx/xr/compose/platform/SpatialCapabilities#isSpatialAudioEnabled()): Indicates whether the application may use spatial audio.\n\nThe following example shows how to check if spatial UI is enabled:\n\n\n```kotlin\nif (LocalSpatialCapabilities.current.isSpatialUiEnabled) {\n Subspace {\n SpatialPanel(\n modifier = SubspaceModifier\n .width(1488.dp)\n .fillMaxHeight()\n ) {\n AppContent()\n }\n }\n} else {\n AppContent()\n}https://github.com/android/snippets/blob/dd30aee903e8c247786c064faab1a9ca8d10b46e/xr/src/main/java/com/example/xr/compose/SpatialCapabilities.kt#L51-L63\n```\n\n\u003cbr /\u003e\n\nCheck for spatial capabilities using SceneCore\n----------------------------------------------\n\nWhen using the SceneCore library, you'll have to create a [session](/develop/xr/jetpack-xr-sdk/add-session). Once the\nsession is created, call [`spatialCapabilities`](/reference/kotlin/androidx/xr/scenecore/Scene#spatialCapabilities()) on the session to query\nwhich spatial capabilities are currently available.\n\n- [`SPATIAL_CAPABILITY_3D_CONTENT`](/reference/kotlin/androidx/xr/scenecore/SpatialCapabilities#SPATIAL_CAPABILITY_3D_CONTENT()): The activity can create 3D contents.\n- [`SPATIAL_CAPABILITY_APP_ENVIRONMENT`](/reference/kotlin/androidx/xr/scenecore/SpatialCapabilities#SPATIAL_CAPABILITY_APP_ENVIRONMENT()): The activity can set its own environment.\n- [`SPATIAL_CAPABILITY_EMBED_ACTIVITY`](/reference/kotlin/androidx/xr/scenecore/SpatialCapabilities#SPATIAL_CAPABILITY_EMBED_ACTIVITY()): The activity can spatially embed another activity.\n- [`SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL`](/reference/kotlin/androidx/xr/scenecore/SpatialCapabilities#SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL()): The activity can enable or disable passthrough.\n- [`SPATIAL_CAPABILITY_SPATIAL_AUDIO`](/reference/kotlin/androidx/xr/scenecore/SpatialCapabilities#SPATIAL_CAPABILITY_SPATIAL_AUDIO()): The activity can use spatial audio.\n- [`SPATIAL_CAPABILITY_UI`](/reference/kotlin/androidx/xr/scenecore/SpatialCapabilities#SPATIAL_CAPABILITY_UI()): The activity can spatialize itself (for example, adding a spatial panel).\n\nYou can also choose to subscribe to a callback,\n[`addSpatialCapabilitiesChangedListener`](/reference/kotlin/androidx/xr/scenecore/Scene#addSpatialCapabilitiesChangedListener(java.util.function.Consumer)) that notifies you when spatial\ncapabilities have changed.\n\n\n```kotlin\n// Example 1: check if enabling passthrough mode is allowed\nif (xrSession.scene.spatialCapabilities.hasCapability(\n SpatialCapabilities.SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL\n )\n) {\n xrSession.scene.spatialEnvironment.preferredPassthroughOpacity = 1f\n}\n// Example 2: multiple capability flags can be checked simultaneously:\nif (xrSession.scene.spatialCapabilities.hasCapability(\n SpatialCapabilities.SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL and\n SpatialCapabilities.SPATIAL_CAPABILITY_3D_CONTENT\n )\n) {\n // ...\n}https://github.com/android/snippets/blob/dd30aee903e8c247786c064faab1a9ca8d10b46e/xr/src/main/java/com/example/xr/scenecore/SpatialCapabilities.kt#L25-L39\n```\n\n\u003cbr /\u003e\n\nSee also\n--------\n\n- [Create a session](/develop/xr/jetpack-xr-sdk/check-spatial-capabilities)\n- [Transition between HSM and FSM](/develop/xr/jetpack-xr-sdk/transition-home-space-to-full-space)\n- [Add spatial environments to your app](/develop/xr/jetpack-xr-sdk/add-environments)\n- [Add 3D models to your app](/develop/xr/jetpack-xr-sdk/add-3d-models)"]]