Jetpack SceneCore
| Son Güncelleme | Kararlı sürüm | Sürüm Adayı | Beta Sürümü | Alfa sürümü | 
|---|---|---|---|---|
| 22 Ekim 2025 | - | - | - | 1.0.0-alpha08 | 
Bağımlılıkları bildirme
XR SceneCore'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Groovy
dependencies { implementation "androidx.xr.scenecore:scenecore:1.0.0-alpha08" // Optional dependencies for asynchronous conversions implementation "androidx.xr.scenecore:scenecore-guava:1.0.0-alpha08" // Use to write unit tests testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha08" }
Kotlin
dependencies { implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha08") // Optional dependencies for asynchronous conversions implementation("androidx.xr.scenecore:scenecore-guava:1.0.0-alpha08") // Use to write unit tests testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha08") }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Sürüm 1.0
Sürüm 1.0.0-alpha08
22 Ekim 2025
androidx.xr.scenecore:scenecore-*:1.0.0-alpha08 iptal edilir. 1.0.0-alpha08 sürümü bu commit'leri içerir.
API Değişiklikleri
- ActivityPanelEntity.moveActivity,- transferActivityolarak yeniden adlandırıldı (I273c5, b/430332856)
Hata Düzeltmeleri
- :xr:scenecore:scenecore-spatial-renderingve- :xr:scenecore:scenecore-spatial-core,- :xr:scenecore:scenecore'nin (I6ab65, b/447000520) uygulama bağımlılığı olarak eklendi.
- Oturum yok edildikten sonra session.sceneerişilirse istisna oluşturulur. (I77e6f)
Sürüm 1.0.0-alpha07
24 Eylül 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha07, androidx.xr.scenecore:scenecore-guava:1.0.0-alpha07 ve androidx.xr.scenecore:scenecore-testing:1.0.0-alpha07 özellikleri kullanıma sunulur. 1.0.0-alpha07 sürümü bu commit'leri içerir.
API Değişiklikleri
- fixedAspectRatio,- isFixedAspectRatioEnabledolarak yeniden adlandırıldı ve Boole özelliği haline getirildi (I5c4e8, b/440588971)
- ScenecoreSahteler artık- xr:scenecore:scenecore-testingmodülünde yer alıyor. (Idd951)
- shouldAutoHideContent,- isAutoHideContentWhileResizingEnabled,- shouldAlwaysShowOverlayve- isAlwaysShowOverlayEnabledolarak yeniden adlandırıldı (I97c36, b/432335421)
- Okunabilirlik için SceneCoreTextureSamplersabitleri güncellendi. Örneğin,TextureSampler.MinFilter.LINEARartıkTextureSampler.MIN_FILTER_LINEAR(Ib159c) olarak kullanılıyor.
- Sahnenin setKeyEntityayarlayıcısı,keyEntitydeğişkeniyle birleştirildi.keyEntityöğesiniAnchorEntitygibi taşınamayan bir öğeye ayarlamak, boole yanlış değeri döndürmek yerineIllegalArgumentExceptionhatası verir. (I62080, b/428721695, b/422215745)
- Sahnenin SpatialModeChangeListenerdeğişkeni,setSpatialModeChangedListenerile değiştirildi.SpatialModeChangedListeneryerineConsumer<SpatialModeChangeEvent>alır.setSpatialModeChangedListenerartık isteğe bağlı olarak bir Executor alabilir. (I62080, b/428721695, b/422215745)
- bundleparametresi- ActivityPanelEntity.startActivityöğesinden kaldırıldı (I64344, b/430332856, b/430333040).
- SpatializerConstants.SOURCE_TYPE_BYPASS,- SpatializerConstants.SOURCE_TYPE_DEFAULTolarak yeniden adlandırıldı. (Ifc7fe, b/422215565)
- SpatialSoundPool.PLAY_FAILEDsabiti eklendi. (Ifc7fe, b/422215565)
- SpatialSoundPool.playyöntemlerine varsayılan bağımsız değişkenler eklendi. (Ifc7fe, b/422215565)
- SpatialAudioTrackBuilderiçindeki ayarlayıcıların döndürülen değeri kaldırıldı. (Ifc7fe, b/422215565)
- SurfaceEntity değişiklikleri
- SurfaceEntity.CanvasShape,- Shapeolarak yeniden adlandırıldı
- SurfaceEntity.CanvasShape.Vr180Hemisphere,- Hemisphereolarak yeniden adlandırıldı
- SurfaceEntity.CanvasShape.Vr360Sphere,- Sphereolarak yeniden adlandırıldı
- SurfaceEntity.EdgeFeatheringParams.SmoothFeather,- RectangleFeatherolarak yeniden adlandırıldı
- SurfaceEntity.EdgeFeathingParams.SolidEdge,- NoFeatheringolarak yeniden adlandırıldı
- SurfaceEntity.ContentSecurityLevel,- SurfaceProtectionolarak yeniden adlandırıldı
- SurfaceEntity.ContentSecurityLevel.{values},- SURFACE_PROTECTION_önekini ekledi.
- SurfaceEntity.SuperSampling.{$values},- SUPER_SAMPLING_önekini ekledi
- SurfaceEntity.StereoMode.{values},- STEREO_MODE_önekini ekledi
- SurfaceEntity.ContentColorMetadata.maxCLL,- maxContentLightLevelolarak yeniden adlandırıldı (I7eb5f, b/422216050, b/427529950)
 
- launchActivity,- startActivityolarak yeniden adlandırıldı (I7db90, b/430332856)
- Scene.activitySpaceRootkaldırıldı. Bunun yerine- Scene.activitySpacepolitikasını kullanın. (I05ee8, b/378706624, b/422215745)
- configureBundleForFullSpaceModeLaunchve- configureBundleForFullSpaceModeLaunchWithEnvironmentInheritedsırasıyla- createBundleForFullSpaceModeLaunchve- createBundleForFullSpaceModeLaunchWithEnvironmentInheritedolarak yeniden adlandırıldı ve üst düzey yöntemler olarak LaunchUtils.kt dosyasına taşındı. İlk parametre olarak Session'ı alır (I64a2c, b/437186050).
- GroupEntityfactory artık Entity yerine- GroupEntitytürünü döndürüyor. (I66042)
Hata Düzeltmeleri
- Bir öğe örneği, yok etme işleminden sonra kullanıldığında IllegalStateExceptionoluşturun. (I90990, b/427314036, b/432063442)
Sürüm 1.0.0-alpha06
13 Ağustos 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha06, androidx.xr.scenecore:scenecore-guava:1.0.0-alpha06 ve androidx.xr.scenecore:scenecore-testing:1.0.0-alpha06 özellikleri kullanıma sunulur. 1.0.0-alpha06 sürümü bu commit'leri içerir.
API Değişiklikleri
- SceneCore'nın- BaseEntityve- BaseScenePoseAPI'lerindeki kısıtlamaları kaldırın (88c0ff6)
Sürüm 1.0.0-alpha05
30 Temmuz 2025
androidx.xr.scenecore:scenecore-guava:1.0.0-alpha05, androidx.xr.scenecore:scenecore-testing:1.0.0-alpha05 ve androidx.xr.scenecore:scenecore:1.0.0-alpha05 özellikleri kullanıma sunulur. 1.0.0-alpha05 sürümü bu commit'leri içerir.
Yeni Özellikler
- Panel Varlıkları ve SurfaceEntities'ya Algılanan Çözünürlük API'si eklendi. (I118f6)
- PerceivedResolutionHSM'deki etkinliğin ana panelinin algılanan çözünürlüğünü izlemek için Scene.kt'ye geri çağırma yöntemleri eklendi. (I58084)
- SurfaceEntity- Oluşturma sırasında süper örnekleme isteğinde bulunma uygulaması için destek eklendi. Bu, uygulamaların kenar yumuşatma için süper örnekleme filtresi kullanmasına olanak tanır. (I06913)
- ActivitySpacelistesine- recommendedContentBoxInFullSpaceözelliği eklendi. Tam Alan Modu'nda yerleştirilecek içerikler için önerilen bir kutu döndürür. (I4cd6f)
- Taşınabilir değiştirici için, sabitlemeye olanak tanıyan aşırı yüklenmiş oluşturucu sağlandı. (Ic0c70)
API Değişiklikleri
Bu sürümde SceneCore'da kapsamlı API değişiklikleri yapıldı. Birkaç sınıf yeniden adlandırıldı ve/veya farklı modüllere taşındı. Çoğu getter/setter yöntemi Kotlin özellikleri ile değiştirildi. İlk beta sürümümüz yayınlanana kadar gelecekte API'de uyumluluğu bozan değişiklikler olacağını tahmin etsek de bu değişiklikler o kadar rahatsız edici veya çok sayıda olmayacak.
- Aşağıdaki sınıfların ve arayüzlerin adları değiştirildi ve/veya taşındı: androidx.xr.scenecore.PixelDimensions-androidx.xr.runtime.math.IntSize2d;androidx.xr.scenecore.Dimensions-androidx.xr.runtime.math.FloatSize3d;androidx.xr.scenecore.ActivityPose-ScenePose,androidx.xr.scenecore.ContentlessEntity-GroupEntity,androidx.xr.scenecore.PlaneType-PlaneOrientation;androidx.xr.scenecore.PlaneSemantic-PlaneSemanticType. (Ifd405)(I3b622) (If534d)
- Sceneözelliklerinin bir dizi ayarlayıcısı,- SceneCoreistemcileri tarafından değiştirilmemesi amaçlandığından gizli hale getirildi:- activitySpace,- activitySpaceRoot,- mainPanelEntity,- perceptionSpace,- spatialCapabilities,- spatialEnvironmentve- spatialUser. (I2f506)
- Varlıkta: get/setParent(),setContentDescriptionözellikleri değiştirildi.Entity.is/setHidden()özelliği kullanımdan kaldırıldı, bunun yerineEntity.is/setEnabledözelliği kullanılıyor. (Ibc4c6)
- androidx.xr.scenecore.BasePanelEntitysınıfı kaldırıldı. Bunun yerine doğrudan- PanelEntitykullanın.- PanelEntityiçin alıcılar ve ayarlayıcılar özelliklerle değiştirildi.- PanelEntity.sizeözelliği,- Float3dSizeolan önceki değerden- Float2dSizeolarak değiştirildi. Desteği sonlandırılan- androidx.xr.scenecore.PanelEntity.getPixelDimensionsyöntemi kaldırıldı. Bunun yerine- getSizeInPixelsyöntemini kullanın. (Icc174)
- androidx.xr.scenecore.OnSpaceUpdatedListener,- Runnableile değiştirildi. (I19308)
- SpatialUser.getCameraViews()öğesi bir mülkle değiştirildi. (Ib0cc5)- ExrImageve- GltfModel:için- createyöntemleri askıya alma işlevleri olarak değiştirildi; oluşturma parametreleri,- Stringyerine- Uriveya- Pathkabul edecek şekilde değiştirildi. (Id8883) (I0d247), (I25706)
- SpatialEnvironment.requestFullSpaceModeve- SpatialEnvironment.requestHomeSpaceMode, Sahne'ye taşındı. Örneğin,- session.scene.spatialEnvironment.requestFullSpaceMode()yerine- session.scene.requestFullSpaceMode()kullanın.- addOnPassthroughOpacityChangedListenerve- addOnSpatialEnvironmentChangedListenerartık isteğe bağlı Executor'ları kabul eden geçersiz kılma işlemlerine sahip. (I12fe0) (I6b21e)
- Kullanımdan kaldırılan şu SpatialEnvironmentyöntemleri kaldırıldı:togglePassthrough,setPassthrough,setPassthroughOpacity,getPassthroughMode,getPassthroughOpacity,setSkyboxvesetGeometry. Ayrıca, kullanımdan kaldırılanSpatialEnvironment.PassthroughMode(I927bd) (I927bd) (I927bd) sınıfı da kaldırıldı.
- Aşağıdaki SpatialEnvironmentalıcılar ve ayarlayıcılar Kotlin özellikleriyle değiştirildi:getCurrentPassthroughOpacity(),get/setPassthroughOpacityPreference(),get/setSpatialEnvironmentPreference(),isSpatialEnvironmentPreferenceActive()(I33a7b) (Ie06e2) (Ie06e2)
- SpatialEnvironmentPreference.preferredPassthroughOpacitytürü- Float?olarak değiştirildi.- FloatArtık boş değerler kabul edilmiyor. Bunun yerine, opaklık tercihi olmadığını belirtmek için- SpatialEnvironment.NO_PASSTHROUGH_OPACITY_PREFERENCEkullanılır. (I40107)
- Oluşturma yönteminde windowBoundsPxparametresipixelDimensionsolarak, türü ise Rect'tenIntSize2dolarak güncellendi. (I1926e)
- SpatialEnvironmentoluşturucusu artık dahili (I75a51)
- SpatialPointerIconNoneve- SpatialPointerIconCirclesınıfları, yardımcı nesneler- SpatialPointerIcon.NONEve- SpatialPointerIcon.CIRCLEile değiştirildi (I416d2).
- SpatialPointerComponentiçindeki- SpatialPointerIconartık boş değer içermez. Sistem varsayılanı işaretçi simgesinin kullanılması gerektiğini belirtmek için null yerine- SpatialPointerIcon.DEFAULTdeğerini kullanın. (I416d2)
- androidx.xr.scenecore.AnchorEntity.getState(), salt okunur bir özellik ile değiştirildi.- AnchorEntity.create()yöntemindeki parametreler daha anlaşılır olacak şekilde yeniden adlandırıldı.- AnchorEntity'nın işleyici ayarlama ve ekleme yöntemlerinde, sondaki lambda'ların etkinleştirilmesi için işleyici son bağımsız değişkene taşındı.- AnchorEntityiçin- androidx.xr.scenecore.OnStateChangedListeneryerine- Consumer<AnchorEntity.State>kullanıldı. (I472e0)
- GltfModelEntity.getAnimationState()artık bir mülk. (I10b29)
- ActivitySpace.getBounds()öğesi bir mülkle değiştirildi.- ActivitySpace.addBoundsChangedListener,- ActivitySpace.addOnBoundsChangedListenerolarak yeniden adlandırıldı.- ActivitySpace.setOnSpaceUpdatedListener, ekleme/kaldırma yöntemleriyle değiştirildi. (I4c956)
- AnchorPlacement: planeTypeFilterolan ad- anchorablePlaneOrientations,- planeSemanticFilterolan ad- anchorablePlaneSemanticTypesolarak değiştirildi.- AnchorEntityveya- ActivitySpaceişlevine- MovableComponenteklenmesi "yanlış" değerini döndürür,- MoveListenerişlevinin adı- EntityMoveListener shouldDisposeParentAnchorolarak değiştirildi,- EntityMoveListener shouldDisposeParentAnchorişlevinin adı- disposeParentOnReAnchor systemMovableolarak değiştirildi,- disposeParentOnReAnchor systemMovableişlevi- creeateCustomMovable,- createSystemMovableve- createAnchorableişlevleri lehine- createişlevinden kaldırıldı (If11c4)
- SurfaceEntity.featherRadiusX/Ykaldırılır ve- EdgeFeatheringParamssınıfı kavramı eklenir. (Ic78fc)
- PanelEntity.enablePanelDepthTest()yöntemi,- panelClippingConfigözelliğiyle değiştirildi. Derinlik testini etkinleştirmek için- Scene.panelClippingConfig = PanelClippingConfig(isDepthTestEnabled = true), devre dışı bırakmak için- PanelClippingConfig(isDepthTestEnabled = false)olarak ayarlayın. (I0cbe0)
- Scene.mainPanelEntityartık- PanelEntityyerine- MainPanelEntitytüründe (I7125a)
- Scene sınıfının setFullSpaceModeyöntemiconfigureBundleForFullSpaceModeLaunch,setFullSpaceModeWithEnvironmentInheritedyöntemi iseconfigureBundleForFullSpaceModeLaunchWithEnvironmentInheritedolarak yeniden adlandırıldı. (I0cbe0) (I0cbe0)
- SpatialVisibility'nın UNKNOWN, OUTSIDE_FOV, PARTIALLY_WITHIN_FOV ve WITHIN_FOV değerleri sırasıyla SPATIAL_VISIBILITY_UNKNOWN, SPATIAL_VISIBILITY_OUTSIDE_FIELD_OF_VIEW, SPATIAL_VISIBILITY_PARTIALLY_WITHIN_FIELD_OF_VIEW ve SPATIAL_VISIBILITY_WITHIN_FIELD_OF_VIEW olarak yeniden adlandırıldı (Ie7e8c).
- SpatialVisibilitysınıfı, sabit int değerlerine sahip genel nesneyle değiştirildi.- setSpatialVisibilityChangedListenerartık- Consumer<SpatialVisibility>yerine- Consumer<Int>kabul ediyor (Ie7e8c)
- PointerCaptureComponentsabiti yeniden adlandırıldı ve- PointerCaptureComponent.PointerCaptureStatenesnesine taşındı (I9c7ac)
- PointerCaptureComponents' StateListener,- Consumer<Int>ile değiştirildi. (I9c7ac)
- InputEventListener,- Consumer<InputEvent>ile değiştirildi (I9c7ac)
- setPreferredAspectRatio, Scene sınıfından- SpatialWindownesnesine taşındı ve ilk parametre olarak Session'ı alıyor. (I7b717)
- Entity.setHidden(),- Entity.setEnabled()ile,- Entity.isHidden()ise- Entity.isEnabled()ile değiştirildi.- setHidden(false),- setEnabled(true)ve- isHidden() == !isEnabled()değerine eşittir. (Icf0de)
- Entity.contentDescriptiontürü, String'den- CharSequenceolarak değiştirildi. (Ie59be)
- Session.createve- Session.configureartık- SessionCreatePermissionsNotGrantedveya- SessionConfigurePermissionsNotGranteddeğerini döndürmek yerine yeterli izin verilmediğinde- SecurityExceptiondeğerini döndürüyor. (I7c488)
- ResizableComponent.createartık- Consumer<ResizeEvent> ResizeEventListenergerektiriyor.- Consumer<ResizeEvent> ResizableComponent.size,- ResizableComponent.affordanceSize ResizableComponent.minimumSizeolarak yeniden adlandırıldı.- ResizableComponent.minimumEntitySize ResizableComponent.maximumSize,- ResizableComponent.maximumEntitySizeolarak yeniden adlandırıldı.- ResizableComponent.autoHideContent,- ResizableComponent.shouldAutoHideContentolarak yeniden adlandırıldı.- ResizableComponent.forceShowResizeOverlay,- ResizableComponent.shouldAlwaysShowOverlayolarak yeniden adlandırıldı (I97a2d).
- minSDK,- androidx.xr.scenecoreve- androidx.xr.composeiçin 24'e düşürüldü. XR paketleri, çalışma zamanında hâlâ API 34'ü gerektirir. (I17224)
- Tüm Jetpack XR paketlerindeki RequiresApi(34)kısıtlaması kaldırıldı. Jetpack XR şu anda yalnızca API düzeyi 34 ve üzeri olan cihazlarda kullanılabildiğinden bu kısıtlama gereksizdi. (Iae0f8)
- Ana SceneCoreyapısı (xr:scenecore:scenecore) yalnızca Kotlin tarzı eş zamansız API'ler içerir. Java geliştiriciler, uyumlu API'lere erişmek içinxr:scenecore:scenecore-guavakitaplığını kullanabilir. (If221b)
- Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir (Idb6b5).
- Bu kitaplık artık tür kullanımı olan JSpecify nullness ek açıklamalarını kullanıyor. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için aşağıdaki derleyici bağımsız değişkenini kullanmalıdır: -Xjspecify-annotations=strict(bu, Kotlin derleyicisinin 2.1.0 sürümünden itibaren varsayılan değerdir) (Ia8420)
- ListenableFuturedöndüren tüm asenkron yöntemler, Kotlin'in askıya alma işlevleriyle değiştirildi. Kotlin'in askıya alma işlevleri yerine- ListenableFuturetabanlı asenkron yöntemler kullanmak isteyen Java geliştiricilerin artık- :xr:scenecore-scenecore-guava'deki uzantı işlevlerini kullanması gerekiyor. Örneğin,- GuavaExrImage, Guava'ya eşdeğer ExrImage asenkron işlevlerini,- GuavaScenePose, Guava'ya eşdeğer- ScenePoseasenkron işlevlerini,- GuavaGltfModelise- Guava-equivalent GltfModelasenkron işlevlerini içerir. (If7283) (I0af60) (If7283) (Ia8515) (I4efdf) (I54bbf) (I3467a) (I82a33)
Hata Düzeltmeleri
- Küçültülmüş istemcilerde AbstractMethodErrorsorununu önlemek için güncellenmiş Jetpack XR ScenecoreProGuardkuralı. (I91a01)
- Jetpack XR için Proguard küçültmesini desteklemeye yönelik ek düzeltmeler SceneCore(I4f47e)
- Sistemden döndürülen hitPositiondeğeri boşsa (null)InputEventHitInfo'nunhitPositiondeğerininInteractableComponentçökmesine neden olabileceği hata düzeltildi (I7a695).
- Yapılandırma *Modu değerleri, davranışlarını yansıtacak şekilde yeniden adlandırıldı. (I6d247)
- SceneCoreTestApp'te FOV ve- HitTestile ilgili sorunlar düzeltildi. (I2c51e)
- SpatialCapabilities.hasCapability()işlevinde, bit düzeyinde VEYA ile iletilen özelliklerden herhangi biri doğruysa yalnızca tüm özellikler doğru olduğunda doğru değerini döndürmesi gerekirken doğru değerini döndürmesine neden olan hata düzeltildi. (I2cd40)
- SurfaceEntity.StereoMode.TOP_BOTTOM, üstteki harita sol gözde, alttaki harita ise sağ gözde olacak şekilde güncellendi. (I4ae68)
Sürüm 1.0.0-alpha04
7 Mayıs 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha04 ve androidx.xr.scenecore:scenecore-testing:1.0.0-alpha04 yayınlandı. 1.0.0-alpha04 sürümü bu commit'leri içerir.
Yeni Özellikler
- Geriye dönük işleme artık yerleştirilmiş etkinlikler içermeyen panel öğelerinde çalışacak. Geriye doğru işleme özelliğinin çalışması için Android manifestinde android:enableOnBackInvokedCallback= "true"belirtmeniz gerekir.
- StereoSurfaceEntityartık iki yeni- StereoModedeğeri (MULTIVIEW_LEFT_PRIMARY ve MULTIVIEW_RIGHT_PRIMARY) aracılığıyla MV-HEVC oynatmayı destekliyor.
- PanelEntity.setSizeve- PanelEntity.getSizeartık üst alandaki boyutları döndürüyor.
- Entity.setPose,- Entity.getPose,- Entity.setScale,- Entity.getScale,- Entity.setAlphave- Entity.getAlphaartık farklı alanlara göre değerleri alma/ayarlama işlemlerine olanak tanıyan yeni bir parametre- relativeToalıyor. Desteklenen değerler üst, etkinlik ve gerçek dünya alanlarıdır. Bu parametrenin varsayılan değeri üst öğedir.
- Sahne içeriğinin kullanıcının görüş alanının içine veya dışına taşındığı zamanı izlemek için SessionExt.kt'ya Spatial Visibility Callback uzantı yöntemleri eklendi.
- setPointSourceParams,- SpatialAudioTrackadlı parçaya eklendi. Bu sayede, parça oluşturulduktan sonra parametreler güncellenebilir.
- ScenecoreAPI'lerine referanslar içeren yeni bir sınıf (Sahne) eklendi. Sahne, oturumun bir uzantı özelliği olarak erişilebilir.- SessionExtiçindeki işlevler Scene'e taşındı. Bu nedenle, içe aktarmaların ayarlanması gerekecek. Örneğin,- SessionExt.getScene(session).- addSpatialCapababilitiesChangedListener-- SessionExt.addSpatialCapabilitiesChangedListener.
- ActivityPose.hitTestAsynceklendi. Bu sayede sanal içeriklere karşı- hitTestkullanılabiliyor.
- Yeni bileşen türü SpatialPointerComponenteklendi. Bu tür, müşterilerin işaretçi için oluşturulan simgeyi belirtmesine veya simgeyi devre dışı bırakmasına olanak tanır. Bu Bileşen şu anda yalnızcaPanelEntityörneğe eklenebilir.
- Yeni PanelEntityfabrika işleviyle tanışın. Bu işlev, panel boyutlarını metre veya piksel cinsinden alır. Panel için iki boyut türü parametresi alan eskiPanelEntityfabrikası kaldırıldı.
API Değişiklikleri
- Tüm Jetpack XR paketlerindeki RequiresApi(34)kısıtlaması kaldırıldı. Jetpack XR şu anda yalnızca API düzeyi 34 ve üzeri olan cihazlarda kullanılabildiğinden bu kısıtlama gereksizdi. (Iae0f8)
- Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir (Idb6b5).
- PermissionHelpersınıfı kaldırıldı.
- PanelEntity.getPixelDensitydesteği sonlandırıldı.
- PanelEntity.setPixelDimensionsve- PanelEntity.getPixelDimensionkaldırıldı, yerini- setSizeInPixelsve- getSizeInPixelsaldı.
- Entity.getActivitySpaceAlphakaldırıldı.- Entity.getAlpha(Space.Activity)ile değiştirilebilir.
- Entity.getWorldSpaceScalekaldırıldı.- Entity.getScale(Space.REAL\_WORLD)ile değiştirilebilir.
- SceneCoreiçindeki Oturum sınıfı, XR Runtime'daki Oturum sınıfı lehine silindi.
- StereoSurfaceEntity,- SurfaceEntityolarak yeniden adlandırıldı.
- Entity.setSizeve- Entity.getSizekaldırıldı. Aynı yöntemler- PanelEntityiçin eklendi.
- PointSourceAttributes,- PointSourceParamsolarak yeniden adlandırıldı.
- SpatializerConstants.SOURCE\_TYPE\_BYPASS,- SpatializerConstants.SOURCE\_TYPE\_DEFAULTolarak yeniden adlandırıldı.
- PointSourceParamsöğesinin erişimi herkese açık yerine kuruluş içi olarak değiştirildi.
- AnchorEntity.createartık- Session.configure()içinde- PlaneTrackingModeyapılandırılmasını gerektiriyor.
- SpatialUserAPI'leri artık- Session.configure()içinde- HeadTrackingModeyapılandırılmasını gerektiriyor.
- ResizableComponenteklenmediğinde HATA düzeyinde günlük yerine BİLGİ düzeyinde günlük verilir.
- Fov sınıfı artık normal bir Kotlin sınıfıdır.
- Her somut varlık türünü kendi dosyasına yerleştirmek için Entity.ktöğesini bölün.
- Yeni bir PanelEntityoluştururken çoğu görünümFrameLayoutaltında yeniden üst öğe olarak atanır. Bu,LayoutInspectorile Spatial Panels'in kullanılmasını kolaylaştırır.
- Şu anda kullanılan XrExtensionsörneği, uygulama hata ayıklamasına yardımcı olmak için platforma en iyi çabayı göstererek kaydedilir.
Hata Düzeltmeleri
- MovableComponentve- AnchorPlacementiçeren bir- PanelEntitytaşındığında oluşabilecek kilitlenmeyi önlemek için düzeltme eklendi.
- ResizableComponent'nın- onResizeStartgeri çağırmasında eski boyutlar sağlaması sorunu düzeltildi.
- JxrPlatformAdapterAxr'nın- dispose()işlevi birden çok kez çağrıldığında yaşanan kilitlenme sorunu düzeltildi.
Sürüm 1.0.0-alpha03
26 Şubat 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha03 ve androidx.xr.scenecore:scenecore-testing:1.0.0-alpha03 yayınlandı. 1.0.0-alpha03 sürümü bu commit'leri içerir.
Yeni Özellikler
- Proguard sadeleştirme artık Jetpack XR kodu için destekleniyor
Hata Düzeltmeleri
- Jetpack XR SceneCore için Proguard küçültmesini destekleyen ek düzeltmeler (I4f47e)
- Küçültülmüş istemcilerde AbstractMethodErrorsorununu önlemek için güncellenmiş Jetpack XR ScenecoreProGuardkuralı. (I91a01)
Sürüm 1.0.0-alpha02
12 Şubat 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha02 ve androidx.xr.scenecore:scenecore-testing:1.0.0-alpha02 yayınlandı. 1.0.0-alpha02 sürümü bu commit'leri içerir.
1.0.0-alpha02 sürümünden önce oluşturulan uygulamaları etkileyecek önemli değişiklik
- Fabrika yöntemleri, Sessionsınıfından her bir ilgili türdeki yardımcı yönteme taşındı:- Session.createActivityPanelEntity(Dimensions, String, Activity, Pose)silindi ve- ActivityPanelEntity.create(Session, Dimensions, String, Pose)ile değiştirildi
- Session.createAnchorEntity(Anchor)silindi ve- AnchorEntity.create(Session, Anchor)ile değiştirildi
- Session.createAnchorEntity(Dimensions, Int, Int, Duration)silindi ve- AnchorEntity.create(Session, Dimensions, Int, Int, Duration)ile değiştirildi
- Session.createEntity(String, Pose)silindi ve- ContentlessEntity.create(Session, String, Pose)ile değiştirildi
- Session.createExrImageResource(String)silindi ve- ExrImage.create(Session, String)ile değiştirildi
- Session.createGltfEntity(GltfModel, Pose)silindi ve- GltfModelEntity.create(Session, GltfModel, Pose)ile değiştirildi
- Session.createGltfModelResource(String)silindi ve- GltfModel.create(Session, String)ile değiştirildi
- Session.createInteractableComponent(Executor, InputEventListener)silindi ve- InteractableComponent.create(Session, Executor, InputEventListener)ile değiştirildi
- Session.createMovableComponent(Boolean, Boolean, Set<AnchorPlacement>, Boolean)silindi ve- MovableComponent.create(Session, Boolean, Boolean, Set<AnchorPlacement>, Boolean)ile değiştirildi
- Session.createPanelEntity(View, Dimensions, Dimensions, String, Pose)silindi ve- PanelEntity.create(Session, View, Dimensions, Dimensions, String, Pose)ile değiştirildi
- Session.createResizableComponent(Dimensions, Dimensions)silindi ve- ResizableComponent.create(Session, Dimensions, Dimensions)ile değiştirildi
- Session.createStereoSurfaceEntity(Int, Dimensions, Pose)silindi ve- StereoSurface.create(Session, Int, Dimensions, Pose)ile değiştirildi
 
- Aşağıdaki desteği sonlandırılan yöntemler kaldırıldı:
- Session.canEmbedActivityPanel(Activity)silindi. Bunun yerine- getSpatialCapabilities.hasCapabilility(SPATIAL_CAPABILITY_EMBED_ACTIVITY)politikasını kullanın.
- Session.hasSpatialCapability(Int)silindi.- getSpatialCapabilities(),- SpatialCapabilitiesnesnesi döndürdüğünden,- getSpatialCapabilities().hasCapability()'nın uzamsal özelliklerin varlığını kontrol etmek için daha bölümlere ayrılmış bir yöntem olarak kullanılması tercih edilerek bu yöntem değiştirildi.
- Session.requestFullSpaceMode()silindi ve- SpatialEnvironment.requestFullSpaceMode()ile değiştirildi
- Session.requestHomeSpaceMode()silindi ve- SpatialEnvironment.requestHomeSpaceMode()ile değiştirildi
 
- Session.setFullSpaceMode(Bundle)ve- Session.setFullSpaceModeWithEnvironmentInherited(Bundle), uzantı işlevlerine taşındı. Geliştirici dosyalarının erişim için yeni içe aktarmaları eklemesi gerekir:- import androidx.xr.scenecore.setFullSpaceMode
- import androidx.xr.scenecore.setFullSpaceModeWithEnvironmentInherited
 
- Session.setPreferredAspectRatio(Activity, Float), uzantı işlevine taşındı. Geliştirici dosyalarının erişim için yeni içe aktarma işlemini eklemesi gerekir:- import androidx.xr.scenecore.setPreferredAspectRatio
 
- Session.getEntitiesOfType(Class<out T>)ve- Session.getEntityForRtEntity(RtEntity), uzantı işlevlerine taşındı. Geliştirici dosyalarının erişim için yeni içe aktarmaları eklemesi gerekir:- import androidx.xr.scenecore.getEntitiesOfType
- import androidx.xr.scenecore.getEntityForRtEntity
 
- Session.unpersistAnchor(Anchor)silindi
- Session.createPersistedAnchorEntity(UUID)silindi
Bilinen sorunlar
- PanelEntity.setCornerRadius()ve- ActivityPanelEntity.setCornerRadius(), panel bir sonraki taşıma işlemine kadar geçerli olmayabilir. Bu durum, paneli mevcut konumuna taşıyarak giderilebilir.
- BoundsChanged,- ActivitySpacecihazında arandığında bazı- ActivityPose'ler doğru şekilde güncellenmemiş olabilir.- ActivitySpacetarihinde yapılacak- OnSpaceUpdatedgörüşmesinde güncellenecek.
Kırılma ve davranış değişiklikleri
- Panelin genişliği veya yüksekliği 32 dp'den küçükse PanelEntityveActivityPanelEntityiçin varsayılan köşe yarıçapı 32 dp veya daha küçük olur.
Yeni API'ler ve özellikler
- StereoSurface.CanvasShapeözelliğini kullanıma sunar. Bu özellik, etkileyici medya oluşturmak için- Sphericalve- Hemisphericaltuvallerinin oluşturulmasına olanak tanır.
- StereoSurfaceEntity.create()artık- CanvasShapeparametresini kabul ediyor. (Bu parametre şu anda yoksayılmaktadır ancak gelecekteki bir sürümde kullanılacaktır.)
- StereoSurfaceEntity.create()artık- Dimensionsparametresini kullanmıyor. Uygulamalar,- CanvasShapeayarını yaparak tuvalin boyutunu kontrol etmelidir.
- StereoSurfaceEntity, dinamik olarak ayarlanabilen- CanvasShapeüyesine sahiptir.
- StereoSurfaceEntity.dimensionsartık salt okunur bir özelliktir. Uygulamalar, boyutları değiştirmek için- CanvasShapedeğerini ayarlamalıdır.
- StereoSurfaceEntityartık- StereoMode'ın yapılandırmadan sonra yeniden ayarlanmasına izin veriyor.
Diğer değişiklikler
- Derleme zamanı minSDK 24'e düşürüldü. Tüm Jetpack XR API'leri, çalışma zamanında API 34 gerektirmeye devam eder.
- SceneCore'nın oturum fabrikası (- Session.create) artık- SCENE_UNDERSTANDINGiznini almak için bir amaç başlatmıyor. Bunun yerine, istemci uygulaması, bağlantı oluşturmaya çalışmadan önce izinleri kullanıcıdan açıkça istemelidir. Kullanıcı izin vermezse bağlantı oluşturma işlemi başarısız olur.
Hata düzeltmeleri
- getActivitySpacePose(), her zaman ölçeklendirilmemiş metreler yerine çeviri değerlerini ölçeklendirilmiş metreler olarak döndürerek- ActivitySpaceölçeğini hesaba katacak şekilde düzeltildi.- transformPoseToartık kaynak veya hedefte- ActivitySpaceolduğunda koordinat değişikliklerini hesaplamak için doğru birimleri de kullanıyor.
- Artık setSpatialEnvironmentPreference(new SpatialEnvironmentPreference(null, geom))kullanılarak boş bir gökyüzü kutusu tercihi iletildiğinde gökyüzü kutusu tamamen siyah bir gökyüzü kutusu olarak ayarlanacak. Sistemin varsayılan gökyüzü kutusuna ve geometrisine geri dönmek içinsetSpatialEnvironmentPreference(null).kullanın.
Sürüm 1.0.0-alpha01
12 Aralık 2024
androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 iptal edilir.
İlk Sürümün Özellikleri Etkileyici sahneler ve ortamlar oluşturup bunları düzenlemek için kullanılan 3D sahne grafiği kitaplığı Jetpack SceneCore'un ilk geliştirici sürümü. Bu kitaplık, 3D modelleri ve içerik panellerini birbirlerine ve sanal ya da gerçek dünya ortamlarınıza göre yerleştirip düzenlemenize olanak tanır.
- SpatialEnvironment: XR sahnenizin arka planı olarak gökyüzü resmi ve/veya 3D model geometrisiyle tamamen sürükleyici deneyimler oluşturun. Alternatif olarak, sanal sahnenizin kullanıcının gerçek dünya ortamıyla entegre olabilmesi için geçişi etkinleştirin.
- PanelEntity: Standart Android düzenlerini ve Etkinliklerini, gerçek dünyadaki yüzeylere sabitlenebilen veya yüzeylerde kaydırılabilen, uzamsallaştırılmış panellere yerleştirerek 3D sahnelerinize 2D içerik ekleyin.
- GltfModelEntity: Sahnenizdeki 3D modelleri yerleştirin, canlandırın ve bunlarla etkileşimde bulunun. SceneCore, mevcut modellerle kolay entegrasyon için glTF dosya biçimini destekler.
- SpatialAudio: Tamamen etkileyici ve uzamsallaştırılmış ses için 3D sahnenize ortam ve nokta ses kaynakları ekleyin.
- StereoSurfaceEntity: SceneCore, Android Surface'e işlenen içeriğin sol/sağ göz yönlendirmesini destekler. Bu, yan yana veya üst-alt biçiminde stereoskopik içerik oluşturmak için kullanılabilir. Örneğin, stereo fotoğraflar, 3D video veya dinamik olarak oluşturulan diğer kullanıcı arayüzleri. Uygulamalar, video kod çözme için MediaPlayer veya ExoPlayer'ı kullanmalıdır.
- Bileşen sistemi: SceneCore, kullanıcıların modeller ve panellerle hareket etme, yeniden boyutlandırma ve etkileşim kurma gibi olanaklar da dahil olmak üzere XR içeriğinize özellikler eklemek için güçlü ve esnek bir bileşen sistemi sunar.
- Sabitleme: Geçiş etkinleştirildiğinde panelleri ve modelleri gerçek yüzeylere ekleyebilir, böylece kullanıcılara sanal içeriğin gerçek dünya ortamlarına sorunsuz bir şekilde entegrasyonunu sağlayabilirsiniz.
- Kullanıcı Pozu: İçeriğinizi kullanıcının konumuna göre yönlendirmek için sanal sahnedeki kullanıcının konumuna erişin.
- SpatialCapabilities: Kullanılabilir olduğunda, kullanıcı arayüzü içeriğinin 3D konumlandırılması gibi uzamsallaştırılmış özelliklerden yararlanan, tamamen uyarlanabilir uygulamalar oluşturun. Bununla da kalmayıp uygulamanız, kullanıcıların Android XR cihazlarını kullanma şekillerine göre deneyimi değiştirmek için uygulama yürütülürken özelliklerdeki değişiklikleri izleyebilir.
Bilinen Sorunlar
- Jetpack SceneCore'u kullanmak için şu anda minimum SDK sürümü 30 olmalıdır. Geçici çözüm olarak, 23 minSDK ile derleme ve çalıştırma yapabilmek için aşağıdaki manifest girişini <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>ekleyin.
- Oturum, ana paneli yeniden boyutlandırma, çevre birimleri bağlama ve açık ile koyu mod arasında geçiş yapma gibi Etkinliğin otomatik olarak yeniden oluşturulduğu çeşitli durumlarda geçersiz hale gelebilir. Oturum geçersiz kılma sorunlarıyla karşılaşırsanız geçici çözümler arasında ana panelinizi yeniden boyutlandırılamaz hale getirme, dinamik panel öğesi kullanma, belirli yapılandırma değişiklikleri için etkinlik yeniden oluşturmayı devre dışı bırakma veya açık/koyu mod tema değişikliklerini devre dışı bırakma yer alır.
- Taşınabilir ve yeniden boyutlandırılabilir bileşenler GltfEntity'de desteklenmez.
- Entity.getSize(), GltfEntity'de desteklenmez.
- Jetpack XR uygulamalarının AndroidManifest'te android.permission.SCENE_UNDERSTANDINGizni istemesi gerekir.
- Oturum oluşturma yalnızca Android XR cihazlarda desteklenir. Şu anda bir oturum oluşturup Android XR olmayan bir cihazda kullanmaya çalışırsanız RuntimeException alırsınız.
- `SpatialEnvironment.setSpatialEnvironmentPreference()` aracılığıyla gökyüzü kutusunun null olarak ayarlanması, belgelendiği gibi tamamen siyah bir gökyüzü kutusuyla sonuçlanmıyor. Bu durumda, sistemin varsayılan gökyüzü kutusu gösterilebilir veya mevcut gökyüzü kutusunda değişiklik yapılmayabilir.
- SceneCore istemcileri, uygulamalarının bağımlılıkları için Gradle yapılandırmalarına implementation(“com.google.guava:listenablefuture-1.0”)eklemelidir. Scenecore, gelecekteki bir sürümde bu kitaplığıapibağımlılık olarak içerecek. Böylece istemcilerin bunu açıkça bildirmesi gerekmeyecek.
- SceneCore, com.google.guava:guava-31.1-androidvecom.google.protobuf:protobuf-javaliteöğelerini yanlışlıkla geçişli bağımlılık olarak içeriyor. Bu durum, derlemenizde yinelenen sınıf hatalarına neden olursa bu iki bağımlılık güvenli bir şekilde hariç tutulabilir.
- Uygulamanız SceneCore kullanıyor ve ProGuard'ı etkinleştiriyorsa oturum oluşturduğunuzda uygulama çöker. Geçici çözüm olarak ProGuard'ı devre dışı bırakın. ProGuard'ı etkinleştirme hakkında daha fazla bilgi için bu kılavuza bakın.
