Android XR SDK kini tersedia di Pratinjau Developer. Kami ingin masukan dari Anda! Kunjungi
halaman dukungan kami untuk menghubungi kami.
Memeriksa kemampuan spasial
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Kemampuan spasial dapat berubah saat pengguna berinteraksi dengan aplikasi atau sistem Anda,
atau bahkan dapat diubah oleh aplikasi itu sendiri—misalnya, berpindah ke Ruang Rumah atau
Ruang Penuh. Untuk menghindari masalah, aplikasi Anda perlu memeriksa kemampuan spasial untuk
menentukan API mana yang didukung di lingkungan saat ini.
Memeriksa kemampuan spasial menggunakan Jetpack Compose untuk XR
Jetpack Compose untuk XR membuat Komposisi Lokal untuk memeriksa kemampuan
spasial. Gunakan ini untuk memeriksa apakah UI spasial, audio spasial, lingkungan,
passthrough, atau konten 3D diaktifkan.
Anda dapat menggunakan LocalSpatialCapabilities.current
untuk memeriksa apakah kemampuan
spasial berikut saat ini tersedia:
Contoh berikut menunjukkan cara memeriksa apakah UI spasial diaktifkan:
if (LocalSpatialCapabilities.current.isSpatialUiEnabled) {
Subspace {
SpatialPanel(
modifier = SubspaceModifier
.width(1488.dp)
.fillMaxHeight()
) {
AppContent()
}
}
} else {
AppContent()
}
Memeriksa kemampuan spasial menggunakan SceneCore
Saat menggunakan library SceneCore, Anda harus membuat sesi. Setelah sesi dibuat, panggil spatialCapabilities
pada sesi untuk membuat kueri kemampuan spasial mana yang saat ini tersedia.
Anda juga dapat memilih untuk berlangganan callback,
addSpatialCapabilitiesChangedListener
yang memberi tahu Anda saat kemampuan
spasial telah berubah.
// 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
)
) {
// ...
}
Lihat juga
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-08-23 UTC.
[null,null,["Terakhir diperbarui pada 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)"]]