Mekansal özellikleri kontrol etme

Geçerli XR cihazlar
Bu kılavuz, bu tür XR cihazlar için deneyimler oluşturmanıza yardımcı olur.
XR Kulaklıklar
Kablolu XR Gözlükler

Uzamsal özellikler cihazlara göre değişebilir ve kullanıcılar uygulamanızla veya sistemle etkileşimde bulundukça değişebilir. Hatta uygulamanızın kendisi tarafından da değiştirilebilirler. Örneğin, ev alanına veya tam alana geçiş yapma. Sorun yaşamamak için uygulamanızın, mevcut ortamda hangi API'lerin desteklendiğini belirlemek üzere uzamsal özellikleri kontrol etmesi gerekir.

XR için Jetpack Compose kullanarak uzamsal özellikleri kontrol etme

XR için Jetpack Compose, uzamsal özellikleri kontrol etmek için bir Composition Local oluşturur. Uzamsal kullanıcı arayüzü, üç boyutlu ses, ortamlar, geçiş veya 3D içeriklerin etkin olup olmadığını kontrol etmek için bu ayarı kullanın.

Aşağıdaki mekansal özelliklerin şu anda kullanılıp kullanılamadığını kontrol etmek için LocalSpatialCapabilities.current simgesini kullanabilirsiniz:

Aşağıdaki örnekte, uzamsal kullanıcı arayüzünün etkin olup olmadığının nasıl kontrol edileceği gösterilmektedir:

if (LocalSpatialCapabilities.current.isSpatialUiEnabled) {
    Subspace {
        SpatialPanel(
            modifier = SubspaceModifier
                .width(1488.dp)
                .fillMaxHeight()
        ) {
            AppContent()
        }
    }
} else {
    AppContent()
}

SceneCore kullanarak uzamsal özellikleri kontrol etme

SceneCore kitaplığını kullanırken bir oturum oluşturmanız gerekir. Oturum oluşturulduktan sonra, oturumun spatialCapabilities bölümünden scene simgesini kullanarak hangi uzamsal özelliklerin kullanılabildiğini sorgulayın.

Ayrıca, uzamsal özellikler değiştiğinde sizi bilgilendiren bir geri arama hizmetine de abone olabilirsiniz. addSpatialCapabilitiesChangedListener

// 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)
) {
    // ...
}

Cihazın ekran özelliklerini kontrol etmek için karıştırma modunu kullanma

Android XR'da, XR başlıkları ve kablolu XR gözlükleri, özellikle ekran türüyle ilgili olarak farklı donanım özelliklerine sahiptir. Uygulamanızın kullanıcı arayüzünün ve oluşturulan nesnelerin renklerini, görünürlüğü en üst düzeye çıkaracak şekilde uyarlamanız gerekebilir. Bu durum, ekran türünden ve cihazın kullandığı tercih edilen karıştırma modundan etkilenebilir. DisplayBlendMode API, oluşturma için cihazın karıştırma modu özelliğini sağlar. Sanal içeriğin gerçek dünyaya nasıl eklendiğini belirlemek için bu API'yi kullanın.

Dikkat etmeniz gereken bazı karıştırma modu türleri şunlardır:

  • ADDITIVE: Kırmızı, yeşil ve mavi bileşenlerin her birinin piksel değerleri eklenerek sanal içerik gerçek dünyaya eklenir. Alfa yoksayılır ve siyah pikseller şeffaf görünür.
  • ALPHA_BLEND: Sanal içerik, alfa bileşenine göre piksel değerleri alfa karıştırması yapılarak gerçek dünyaya eklenir.
  • NO_DISPLAY: Karıştırma, cihazda desteklenmiyor.

Hangi tür harmanlama modunun kullanıldığını kontrol etmek ve gerektiğinde ayarlamalar yapmak için Jetpack XR Runtime kitaplığındaki XrDevice.getCurrentDevice(session).getPreferredDisplayBlendMode() öğesini kullanın.

Ayrıca bkz.