Memeriksa kemampuan spasial

Perangkat XR yang kompatibel
Panduan ini membantu Anda membangun pengalaman untuk jenis perangkat XR ini.
Headset XR
Kacamata XR Berkabel

Kemampuan spasial dapat bervariasi di berbagai perangkat dan berubah saat pengguna berinteraksi dengan aplikasi atau sistem Anda. Bahkan, setelan ini dapat diubah oleh aplikasi Anda 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 Composition Local 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 tersedia saat ini:

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, gunakan spatialCapabilities dari scene sesi untuk mengkueri 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.contains(
        SpatialCapability.PASSTHROUGH_CONTROL
    )
) {
    xrSession.scene.spatialEnvironment.preferredPassthroughOpacity = 1f
}
// Example 2: multiple capability flags can be checked simultaneously:
if (xrSession.scene.spatialCapabilities.contains(SpatialCapability.PASSTHROUGH_CONTROL) &&
    xrSession.scene.spatialCapabilities.contains(SpatialCapability.SPATIAL_3D_CONTENT)
) {
    // ...
}

Menggunakan mode campuran untuk memeriksa kemampuan tampilan perangkat

Di Android XR, headset XR dan kacamata XR berkabel memiliki kemampuan hardware yang berbeda-beda, terutama terkait jenis layarnya. Anda mungkin perlu menyesuaikan warna UI aplikasi dan objek yang dirender untuk memaksimalkan visibilitas, yang mungkin dipengaruhi oleh jenis tampilan dan mode campuran pilihan yang digunakan oleh perangkat. DisplayBlendMode API menyediakan kemampuan mode campuran perangkat untuk rendering. Gunakan API ini untuk menentukan cara konten virtual ditambahkan ke dunia nyata.

Berikut beberapa jenis mode campuran yang perlu diketahui:

  • ADDITIVE: Konten virtual ditambahkan ke dunia nyata dengan menambahkan nilai piksel untuk setiap komponen Merah, Hijau, dan Biru. Alfa diabaikan, dan piksel hitam tampak transparan.
  • ALPHA_BLEND: Konten virtual ditambahkan ke dunia nyata dengan memadukan nilai piksel berdasarkan komponen Alfa.
  • NO_DISPLAY: Penggabungan tidak didukung di perangkat.

Gunakan XrDevice.getCurrentDevice(session).getPreferredDisplayBlendMode() dari library Jetpack XR Runtime untuk memeriksa jenis mode campuran yang digunakan dan melakukan penyesuaian sesuai kebutuhan.

Lihat juga