Jetpack SceneCore

สร้างและจัดการกราฟฉาก Android XR ด้วยเนื้อหา 3 มิติ
อัปเดตล่าสุด รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า รุ่นอัลฟ่า
24 กันยายน 2025 - - - 1.0.0-alpha07

การประกาศทรัพยากร Dependency

หากต้องการเพิ่มทรัพยากร Dependency ใน XR SceneCore คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google

เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle สำหรับ แอปหรือโมดูล

Groovy

dependencies {
    implementation "androidx.xr.scenecore:scenecore:1.0.0-alpha07"

    // Optional dependencies for asynchronous conversions
    implementation "androidx.xr.scenecore:scenecore-guava:1.0.0-alpha07"

    // Use to write unit tests
    testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha07"
}

Kotlin

dependencies {
    implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha07")

    // Optional dependencies for asynchronous conversions
    implementation("androidx.xr.scenecore:scenecore-guava:1.0.0-alpha07")

    // Use to write unit tests
    testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha07")
}

ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพาบิลด์

ความคิดเห็น

ความคิดเห็นของคุณช่วยเราปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว

สร้างปัญหาใหม่

ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของเครื่องมือติดตามปัญหา

รุ่น 1.0

เวอร์ชัน 1.0.0-alpha07

24 กันยายน 2025

androidx.xr.scenecore:scenecore:1.0.0-alpha07 androidx.xr.scenecore:scenecore-guava:1.0.0-alpha07 และ androidx.xr.scenecore:scenecore-testing:1.0.0-alpha07 ออกอากาศแล้ว เวอร์ชัน 1.0.0-alpha07 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เปลี่ยนชื่อ fixedAspectRatio เป็น isFixedAspectRatioEnabled และทำให้เป็นพร็อพเพอร์ตี้บูลีน (I5c4e8, b/440588971)
  • Scenecore ตอนนี้อยู่ในโมดูล xr:scenecore:scenecore-testing แล้ว (Idd951)
  • เปลี่ยนชื่อ shouldAutoHideContent เป็น isAutoHideContentWhileResizingEnabled และ shouldAlwaysShowOverlay เป็น isAlwaysShowOverlayEnabled (I97c36, b/432335421)
  • อัปเดตค่าคงที่ SceneCore TextureSampler เพื่อให้อ่านง่ายขึ้น เช่น ตอนนี้ TextureSampler.MinFilter.LINEAR คือ TextureSampler.MIN_FILTER_LINEAR (Ib159c)
  • ระบบได้ผสานรวมตัวตั้งค่า setKeyEntity ของฉากเข้ากับตัวแปร keyEntity แล้ว การตั้งค่า keyEntity เป็นเอนทิตีที่ย้ายไม่ได้ เช่น AnchorEntity จะทำให้เกิด IllegalArgumentException แทนที่จะส่งคืนค่าบูลีนเป็นเท็จ (I62080, b/428721695, b/422215745)
  • ตัวแปร SpatialModeChangeListener ของฉากถูกแทนที่ด้วย setSpatialModeChangedListener โดยรับค่า Consumer<SpatialModeChangeEvent> แทน SpatialModeChangedListener setSpatialModeChangedListener สามารถรับ Executor ได้แล้ว (ไม่บังคับ) (I62080, b/428721695, b/422215745)
  • นำพารามิเตอร์ bundle ออกจาก ActivityPanelEntity.startActivity (I64344, b/430332856, b/430333040)
  • เปลี่ยนชื่อ SpatializerConstants.SOURCE_TYPE_BYPASS เป็น SpatializerConstants.SOURCE_TYPE_DEFAULT แล้ว (Ifc7fe, b/422215565)
  • เพิ่มค่าคงที่ SpatialSoundPool.PLAY_FAILED (Ifc7fe, b/422215565)
  • เพิ่มอาร์กิวเมนต์เริ่มต้นลงในเมธอด SpatialSoundPool.play (Ifc7fe, b/422215565)
  • นำค่าที่ส่งคืนของตัวตั้งค่าใน SpatialAudioTrackBuilder ออกแล้ว (Ifc7fe, b/422215565)
  • การเปลี่ยนแปลง SurfaceEntity
    • เปลี่ยนชื่อ SurfaceEntity.CanvasShape เป็น Shape แล้ว
    • เปลี่ยนชื่อ SurfaceEntity.CanvasShape.Vr180Hemisphere เป็น Hemisphere แล้ว
    • เปลี่ยนชื่อ SurfaceEntity.CanvasShape.Vr360Sphere เป็น Sphere แล้ว
    • เปลี่ยนชื่อ SurfaceEntity.EdgeFeatheringParams.SmoothFeather เป็น RectangleFeather แล้ว
    • เปลี่ยนชื่อ SurfaceEntity.EdgeFeathingParams.SolidEdge เป็น NoFeathering แล้ว
    • เปลี่ยนชื่อ SurfaceEntity.ContentSecurityLevel เป็น SurfaceProtection แล้ว
    • SurfaceEntity.ContentSecurityLevel.{values} เพิ่มคำนำหน้า SURFACE_PROTECTION_
    • SurfaceEntity.SuperSampling.{$values} เพิ่มSUPER_SAMPLING_คำนำหน้า
    • SurfaceEntity.StereoMode.{values} เพิ่มSTEREO_MODE_คำนำหน้า
    • SurfaceEntity.ContentColorMetadata.maxCLL เปลี่ยนชื่อ maxContentLightLevel (I7eb5f, b/422216050, b/427529950)
  • เปลี่ยนชื่อ launchActivity เป็น startActivity (I7db90, b/430332856)
  • นำ Scene.activitySpaceRoot ออกแล้ว โปรดใช้ Scene.activitySpace แทน (I05ee8, b/378706624, b/422215745)
  • เปลี่ยนชื่อ configureBundleForFullSpaceModeLaunch และ configureBundleForFullSpaceModeLaunchWithEnvironmentInherited เป็น createBundleForFullSpaceModeLaunch และ createBundleForFullSpaceModeLaunchWithEnvironmentInherited ตามลำดับ และย้ายไปยังไฟล์ LaunchUtils.kt เป็นเมธอดระดับบนสุดและใช้ Session เป็นพารามิเตอร์แรก (I64a2c, b/437186050)
  • ตอนนี้ GroupEntity จะแสดงผลประเภท GroupEntity แทน Entity (I66042)

การแก้ไขข้อบกพร่อง

  • ส่ง IllegalStateException เมื่อมีการใช้อินสแตนซ์ของเอนทิตีหลังจากทิ้ง (I90990, b/427314036, b/432063442)

เวอร์ชัน 1.0.0-alpha06

13 สิงหาคม 2025

androidx.xr.scenecore:scenecore:1.0.0-alpha06 androidx.xr.scenecore:scenecore-guava:1.0.0-alpha06 และ androidx.xr.scenecore:scenecore-testing:1.0.0-alpha06 ออกอากาศแล้ว เวอร์ชัน 1.0.0-alpha06 มีการเปลี่ยนแปลงเหล่านี้

การเปลี่ยนแปลง API

  • ยกเลิกการจำกัด API ของ SceneCore BaseEntity และ BaseScenePose (88c0ff6)

เวอร์ชัน 1.0.0-alpha05

30 กรกฎาคม 2025

androidx.xr.scenecore:scenecore-guava:1.0.0-alpha05 androidx.xr.scenecore:scenecore-testing:1.0.0-alpha05 และ androidx.xr.scenecore:scenecore:1.0.0-alpha05 ออกอากาศแล้ว เวอร์ชัน 1.0.0-alpha05 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • เพิ่ม API ความละเอียดที่รับรู้แล้วลงในเอนทิตีแผงและ SurfaceEntities (I118f6)
  • PerceivedResolution เพิ่มเมธอดการเรียกกลับไปยัง Scene.kt เพื่อตรวจสอบความละเอียดที่รับรู้ของแผงหลักของกิจกรรมใน HSM (I58084)
  • SurfaceEntity - เพิ่มการรองรับแอปพลิเคชันเพื่อขอ Super Sampling ในเวลาที่สร้าง ซึ่งจะช่วยให้แอปพลิเคชันใช้ฟิลเตอร์การสุ่มตัวอย่างแบบ Super Sampling เพื่อการป้องกันรอยหยักได้ (I06913)
  • เพิ่มพร็อพเพอร์ตี้ recommendedContentBoxInFullSpace ลงใน ActivitySpace แล้ว โดยจะแสดงช่องแนะนำสำหรับวางเนื้อหาเมื่ออยู่ในโหมดพื้นที่เต็ม (I4cd6f)
  • มีตัวสร้างที่โอเวอร์โหลดสำหรับตัวแก้ไขที่ย้ายได้ซึ่งอนุญาตการยึด (Ic0c70)

การเปลี่ยนแปลง API

เราได้ทำการเปลี่ยนแปลง API อย่างครอบคลุมใน SceneCore สำหรับรุ่นนี้ มีการเปลี่ยนชื่อและ/หรือย้ายคลาสหลายคลาสไปยังโมดูลต่างๆ และมีการแทนที่เมธอด Getter/Setter ส่วนใหญ่ด้วยพร็อพเพอร์ตี้ Kotlin แม้ว่าเราจะคาดการณ์การเปลี่ยนแปลง API ที่ทำให้เกิดข้อขัดข้องในอนาคตจนกว่าจะมีการเปิดตัวเวอร์ชันเบต้าแรก แต่การเปลี่ยนแปลงดังกล่าวจะไม่ทำให้เกิดการหยุดชะงักหรือมีจำนวนมาก

  • เปลี่ยนชื่อและ/หรือย้ายคลาสและอินเทอร์เฟซต่อไปนี้ 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 เป็นแบบส่วนตัว เนื่องจากไม่ได้มีไว้ให้ไคลเอ็นต์ SceneCore แก้ไข ได้แก่ activitySpace, activitySpaceRoot, mainPanelEntity, perceptionSpace, spatialCapabilities, spatialEnvironment และ spatialUser (I2f506)
  • ในเอนทิตี: เปลี่ยน get/setParent(), setContentDescription เป็นพร็อพเพอร์ตี้ เลิกใช้งาน Entity.is/setHidden() แล้ว ให้ใช้ Entity.is/setEnabled แทน (Ibc4c6)
  • นำคลาส androidx.xr.scenecore.BasePanelEntity ออกแล้ว โปรดใช้ PanelEntity โดยตรงแทน แทนที่ Getter และ Setter สำหรับ PanelEntity ด้วยพร็อพเพอร์ตี้ เปลี่ยนพร็อพเพอร์ตี้ PanelEntity.size จาก Float3dSize เป็น Float2dSize นำเมธอด androidx.xr.scenecore.PanelEntity.getPixelDimensions ที่เลิกใช้งานแล้วออก และใช้ getSizeInPixels แทน (Icc174)
  • แทนที่ androidx.xr.scenecore.OnSpaceUpdatedListener ด้วย Runnable แล้ว (I19308)
  • แทนที่ SpatialUser.getCameraViews() ด้วยพร็อพเพอร์ตี้ (Ib0cc5) สำหรับ ExrImage และ GltfModel: เปลี่ยนเมธอด create ให้เป็นฟังก์ชันระงับ แก้ไขพารามิเตอร์การสร้างให้ยอมรับ Uri หรือ Path แทน String (Id8883) (I0d247), (I25706)
  • ย้าย SpatialEnvironment.requestFullSpaceMode และ SpatialEnvironment.requestHomeSpaceMode ไปยังฉาก เช่น ใช้ session.scene.requestFullSpaceMode() แทน session.scene.spatialEnvironment.requestFullSpaceMode() ตอนนี้ addOnPassthroughOpacityChangedListener และ addOnSpatialEnvironmentChangedListener มีการลบล้างที่ยอมรับ Executor ที่ไม่บังคับแล้ว (I12fe0) (I6b21e)
  • นำเมธอด SpatialEnvironment ที่เลิกใช้งานแล้วต่อไปนี้ออก: togglePassthrough, setPassthrough, setPassthroughOpacity, getPassthroughMode, getPassthroughOpacity, setSkybox และ setGeometry นอกจากนี้ยังนำคลาส SpatialEnvironment.PassthroughMode (I927bd) (I927bd) (I927bd) ที่เลิกใช้งานแล้วออกด้วย
  • แทนที่ Getter และ Setter SpatialEnvironment ต่อไปนี้ด้วยพร็อพเพอร์ตี้ Kotlin: getCurrentPassthroughOpacity(), get/setPassthroughOpacityPreference(), get/setSpatialEnvironmentPreference(), isSpatialEnvironmentPreferenceActive() (I33a7b) (Ie06e2) (Ie06e2)
  • เปลี่ยนประเภท SpatialEnvironmentPreference.preferredPassthroughOpacity จาก Float? เป็น Float แล้ว โดยจะไม่รับค่า Null อีกต่อไป แต่จะใช้ SpatialEnvironment.NO_PASSTHROUGH_OPACITY_PREFERENCE เพื่อส่งสัญญาณว่าไม่มีค่ากำหนดความทึบแสง (I40107)
  • อัปเดตพารามิเตอร์ windowBoundsPx เป็น pixelDimensions และประเภทจาก Rect เป็น IntSize2d ในเมธอด create (I1926e)
  • ตอนนี้ตัวสร้าง SpatialEnvironment เป็นแบบภายในแล้ว (I75a51)
  • แทนที่คลาส SpatialPointerIconNone และคลาส SpatialPointerIconCircle ด้วยออบเจ็กต์คู่ SpatialPointerIcon.NONE และ SpatialPointerIcon.CIRCLE (I416d2)
  • SpatialPointerIcon ใน SpatialPointerComponent จะต้องระบุค่าเสมอ ใช้ SpatialPointerIcon.DEFAULT แทนค่า Null เพื่อระบุว่าควรใช้ไอคอนเคอร์เซอร์เริ่มต้นของระบบ (I416d2)
  • แทนที่ androidx.xr.scenecore.AnchorEntity.getState() ด้วยพร็อพเพอร์ตี้แบบอ่านอย่างเดียว เปลี่ยนชื่อพารามิเตอร์ในเมธอด AnchorEntity.create() เพื่อความชัดเจน ในวิธีการตั้งค่าและเพิ่ม Listener ของ AnchorEntity มีการย้าย Listener ไปยังอาร์กิวเมนต์สุดท้ายเพื่อเปิดใช้ Lambda ต่อท้าย แทนที่ androidx.xr.scenecore.OnStateChangedListener สำหรับ AnchorEntity ด้วย Consumer<AnchorEntity.State> (I472e0)
  • ตอนนี้ GltfModelEntity.getAnimationState() เป็นพร็อพเพอร์ตี้แล้ว (I10b29)
  • แทนที่ ActivitySpace.getBounds() ด้วยพร็อพเพอร์ตี้ เปลี่ยนชื่อ ActivitySpace.addBoundsChangedListener เป็น ActivitySpace.addOnBoundsChangedListener แล้ว แทนที่ ActivitySpace.setOnSpaceUpdatedListener ด้วยวิธีการเพิ่ม/นำออก (I4c956)
  • สำหรับ AnchorPlacement: planeTypeFilter เปลี่ยนชื่อเป็น anchorablePlaneOrientations และ planeSemanticFilter เปลี่ยนชื่อเป็น anchorablePlaneSemanticTypes การเพิ่ม MovableComponent ลงใน AnchorEntity หรือ ActivitySpace จะแสดงผลเป็นเท็จ MoveListener เปลี่ยนชื่อเป็น EntityMoveListener shouldDisposeParentAnchor เปลี่ยนชื่อเป็น disposeParentOnReAnchor systemMovable ถูกนำออกจากฟังก์ชัน create เพื่อให้ใช้ creeateCustomMovable, createSystemMovable และ createAnchorable แทน (If11c4)
  • นำSurfaceEntity.featherRadiusX/Yออกและเพิ่มEdgeFeatheringParamsแนวคิดของชั้นเรียน (Ic78fc)
  • แทนที่เมธอด PanelEntity.enablePanelDepthTest() ด้วยพร็อพเพอร์ตี้ panelClippingConfig ตั้งค่า Scene.panelClippingConfig = PanelClippingConfig(isDepthTestEnabled = true) เพื่อเปิดใช้การทดสอบเชิงลึก หรือตั้งค่าเป็น PanelClippingConfig(isDepthTestEnabled = false) เพื่อปิดใช้ (I0cbe0)
  • ตอนนี้ Scene.mainPanelEntity เป็นประเภท MainPanelEntity แทน PanelEntity (I7125a)
  • เปลี่ยนชื่อเมธอด setFullSpaceMode ของ Scene เป็น configureBundleForFullSpaceModeLaunch และเมธอด setFullSpaceModeWithEnvironmentInherited เป็น configureBundleForFullSpaceModeLaunchWithEnvironmentInherited (I0cbe0) (I0cbe0)
  • เปลี่ยนชื่อค่า UNKNOWN, OUTSIDE_FOV, PARTIALLY_WITHIN_FOV และ WITHIN_FOV ของ SpatialVisibility เป็น SPATIAL_VISIBILITY_UNKNOWN, SPATIAL_VISIBILITY_OUTSIDE_FIELD_OF_VIEW, SPATIAL_VISIBILITY_PARTIALLY_WITHIN_FIELD_OF_VIEW และ SPATIAL_VISIBILITY_WITHIN_FIELD_OF_VIEW ตามลำดับ (Ie7e8c)
  • SpatialVisibility คลาสถูกแทนที่ด้วยออบเจ็กต์สาธารณะที่มีค่า Int แบบคงที่ ตอนนี้ setSpatialVisibilityChangedListener ยอมรับ Consumer<Int> แทน Consumer<SpatialVisibility> (Ie7e8c) แล้ว
  • เปลี่ยนชื่อค่าคงที่ PointerCaptureComponent และย้ายไปยังออบเจ็กต์ PointerCaptureComponent.PointerCaptureState (I9c7ac)
  • แทนที่ PointerCaptureComponents' StateListener ด้วย Consumer<Int> แล้ว (I9c7ac)
  • แทนที่ InputEventListener ด้วย Consumer<InputEvent> (I9c7ac)
  • setPreferredAspectRatio ย้ายจากคลาส Scene ไปยังออบเจ็กต์ SpatialWindow และใช้ Session เป็นพารามิเตอร์แรก (I7b717)
  • Entity.setHidden() แทนที่ด้วย Entity.setEnabled() และ Entity.isHidden() แทนที่ด้วย Entity.isEnabled() setHidden(false) เท่ากับ setEnabled(true) และ isHidden() == !isEnabled() (Icf0de)
  • เปลี่ยนประเภท Entity.contentDescription จาก String เป็น CharSequence (Ie59be)
  • Session.create และ Session.configure จะแสดง SecurityException เมื่อไม่ได้รับสิทธิ์ที่เพียงพอแทนที่จะแสดง SessionCreatePermissionsNotGranted หรือ SessionConfigurePermissionsNotGranted (I7c488)
  • ตอนนี้ ResizableComponent.create ต้องใช้ Consumer<ResizeEvent> ResizeEventListener ถูกแทนที่ด้วย Consumer<ResizeEvent> ResizableComponent.size เปลี่ยนชื่อเป็น ResizableComponent.affordanceSize ResizableComponent.minimumSize เปลี่ยนชื่อเป็น ResizableComponent.minimumEntitySize ResizableComponent.maximumSize เปลี่ยนชื่อเป็น ResizableComponent.maximumEntitySize, ResizableComponent.autoHideContent เปลี่ยนชื่อเป็น ResizableComponent.shouldAutoHideContent ResizableComponent.forceShowResizeOverlay เปลี่ยนชื่อเป็น ResizableComponent.shouldAlwaysShowOverlay (I97a2d)
  • ลด minSDK เป็น 24 สำหรับ androidx.xr.scenecore และ androidx.xr.compose แพ็กเกจ XR ยังคงต้องใช้ API 34 ในรันไทม์ (I17224)
  • นำข้อจำกัด RequiresApi(34) ออกจากแพ็กเกจ Jetpack XR ทั้งหมด การจำกัดนี้ซ้ำซ้อนเนื่องจากปัจจุบัน Jetpack XR ใช้ได้เฉพาะในอุปกรณ์ที่มี API ระดับ 34 ขึ้นไป (Iae0f8)
  • อาร์ติแฟกต์หลัก SceneCore (xr:scenecore:scenecore) จะมีเฉพาะ API แบบไม่พร้อมกันในรูปแบบ Kotlin เท่านั้น นักพัฒนาซอฟต์แวร์ Java สามารถใช้ไลบรารี xr:scenecore:scenecore-guava เพื่อเข้าถึง API ที่เข้ากันได้ (If221b)
  • โปรเจ็กต์ที่เผยแพร่ด้วย Kotlin 2.0 ต้องใช้ KGP 2.0.0 ขึ้นไป (Idb6b5)
  • ตอนนี้ไลบรารีนี้ใช้คำอธิบายประกอบเกี่ยวกับค่า Null ของ JSpecify ซึ่งเป็นแบบใช้ประเภท นักพัฒนาซอฟต์แวร์ Kotlin ควรใช้อาร์กิวเมนต์คอมไพเลอร์ต่อไปนี้เพื่อบังคับใช้การใช้งานที่ถูกต้อง -Xjspecify-annotations=strict (นี่คือค่าเริ่มต้นที่เริ่มต้นด้วยคอมไพเลอร์ Kotlin เวอร์ชัน 2.1.0) (Ia8420)
  • เราได้แทนที่เมธอดแบบอะซิงโครนัสทั้งหมดที่ส่งคืน ListenableFuture ด้วยฟังก์ชันระงับของ Kotlin นักพัฒนาซอฟต์แวร์ Java ที่ต้องการใช้วิธีการแบบไม่พร้อมกันที่อิงตาม ListenableFuture แทนฟังก์ชันระงับของ Kotlin จะต้องใช้ฟังก์ชันส่วนขยายใน :xr:scenecore-scenecore-guava เช่น GuavaExrImage มีฟังก์ชันแบบไม่พร้อมกัน ExrImage ที่เทียบเท่ากับ Guava, GuavaScenePose มีฟังก์ชันแบบไม่พร้อมกัน ScenePose ที่เทียบเท่ากับ Guava, GuavaGltfModel มีฟังก์ชันแบบไม่พร้อมกัน Guava-equivalent GltfModel เป็นต้น (If7283) (I0af60) (If7283) (Ia8515) (I4efdf) (I54bbf) (I3467a) (I82a33)

การแก้ไขข้อบกพร่อง

  • อัปเดตกฎ Jetpack XR Scenecore ProGuard เพื่อป้องกัน AbstractMethodError สำหรับไคลเอ็นต์ที่ย่อขนาด (I91a01)
  • การแก้ไขเพิ่มเติมเพื่อรองรับการลดขนาด Proguard สำหรับ Jetpack XR SceneCore (I4f47e)
  • แก้ไขข้อบกพร่องที่ InteractableComponent อาจทำให้เกิดข้อขัดข้องหาก hitPosition ใน HitInfo ของ InputEvent อาจเกิดข้อขัดข้องหาก hitPosition ที่ระบบส่งคืนเป็นค่าว่าง (I7a695)
  • เราได้เปลี่ยนชื่อค่าโหมดการกำหนดค่าเพื่อให้สอดคล้องกับลักษณะการทำงาน (I6d247)
  • แก้ไขปัญหาเกี่ยวกับ FOV และ HitTest ใน SceneCore TestApp (I2c51e)
  • แก้ไขข้อบกพร่องใน SpatialCapabilities.hasCapability() ซึ่งจะแสดงผลเป็นจริงหากความสามารถใดก็ตามที่ส่งผ่านด้วย OR แบบบิตเป็นจริง แทนที่จะแสดงผลเป็นจริงเฉพาะในกรณีที่ความสามารถทั้งหมดเป็นจริง (I2cd40)
  • SurfaceEntity.StereoMode.TOP_BOTTOM อัปเดตให้มีแผนที่ด้านบนสำหรับตาซ้ายและแผนที่ด้านล่างสำหรับตาขวา (I4ae68)

เวอร์ชัน 1.0.0-alpha04

7 พฤษภาคม 2025

androidx.xr.scenecore:scenecore:1.0.0-alpha04 และ androidx.xr.scenecore:scenecore-testing:1.0.0-alpha04 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha04 มีการเปลี่ยนแปลงเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้การจัดการย้อนกลับจะใช้ได้กับเอนทิตีแผงที่ไม่มีกิจกรรมฝัง หากต้องการให้การจัดการย้อนกลับทำงาน คุณต้องระบุ android:enableOnBackInvokedCallback= "true" ในไฟล์ Manifest ของ Android
  • StereoSurfaceEntity ตอนนี้รองรับการเล่น MV-HEVC ผ่านค่า StereoMode ใหม่ 2 ค่า ได้แก่ MULTIVIEW_LEFT_PRIMARY และ MULTIVIEW_RIGHT_PRIMARY
  • ตอนนี้ PanelEntity.setSize และ PanelEntity.getSize จะแสดงขนาดในพื้นที่ระดับบน
  • ตอนนี้ Entity.setPose, Entity.getPose, Entity.setScale, Entity.getScale, Entity.setAlpha และ Entity.getAlpha ใช้พารามิเตอร์ใหม่ relativeTo ซึ่งช่วยให้รับ/ตั้งค่าที่เกี่ยวข้องกับพื้นที่ต่างๆ ได้ ค่าที่รองรับ ได้แก่ พื้นที่สำหรับผู้ปกครอง กิจกรรม และโลกแห่งความเป็นจริง และค่าเริ่มต้นสำหรับพารามิเตอร์นี้คือ "ผู้ปกครอง"
  • เพิ่มเมธอดส่วนขยาย Spatial Visibility Callback ลงใน SessionExt.kt เพื่อตรวจสอบเมื่อเนื้อหาฉากเคลื่อนที่ภายในหรือภายนอกฟิลด์มุมมองของผู้ใช้
  • เพิ่ม setPointSourceParams ลงใน SpatialAudioTrack แล้ว ซึ่งจะช่วยให้คุณอัปเดตพารามิเตอร์ได้หลังจากสร้างแทร็กแล้ว
  • เพิ่มคลาสใหม่ชื่อ Scene พร้อมการอ้างอิงถึง ScenecoreAPI โดยจะเข้าถึงฉากได้ในฐานะพร็อพเพอร์ตี้ส่วนขยายของเซสชัน ฟังก์ชันภายใน SessionExt ได้รับการย้ายไปยัง Scene แล้ว ดังนั้นจึงต้องปรับการนำเข้า เช่น SessionExt.getScene(session)addSpatialCapababilitiesChangedListener พบกับ SessionExt.addSpatialCapabilitiesChangedListener
  • ActivityPose.hitTestAsync ได้รับการเพิ่มเข้ามา ซึ่งช่วยให้hitTestกับเนื้อหาเสมือนได้
  • เพิ่มประเภทคอมโพเนนต์ใหม่ SpatialPointerComponent ซึ่งช่วยให้ไคลเอ็นต์ระบุไอคอนที่แสดงสำหรับเคอร์เซอร์ หรือปิดใช้ไอคอนได้ ปัจจุบันแนบคอมโพเนนต์นี้กับอินสแตนซ์ PanelEntity ได้เท่านั้น
  • ขอแนะนำ PanelEntity ใหม่ ซึ่งใช้ขนาดแผงเป็นเมตรหรือพิกเซล นำPanelEntityโรงงานรุ่นเก่าที่ใช้พารามิเตอร์ประเภทมิติข้อมูล 2 รายการสำหรับแผงออกแล้ว

การเปลี่ยนแปลง API

  • นำข้อจำกัด RequiresApi(34) ออกจากแพ็กเกจ Jetpack XR ทั้งหมด การจำกัดนี้ซ้ำซ้อนเนื่องจากปัจจุบัน Jetpack XR ใช้ได้เฉพาะในอุปกรณ์ที่มี API ระดับ 34 ขึ้นไป (Iae0f8)
  • โปรเจ็กต์ที่เผยแพร่ด้วย Kotlin 2.0 ต้องใช้ KGP 2.0.0 ขึ้นไป (Idb6b5)
  • ระบบได้นำชั้นเรียน PermissionHelper ออกแล้ว
  • PanelEntity.getPixelDensity เลิกใช้งานแล้ว
  • ระบบจะนำ PanelEntity.setPixelDimensions และ PanelEntity.getPixelDimension ออก และแทนที่ด้วย setSizeInPixels และ getSizeInPixels
  • นำ Entity.getActivitySpaceAlpha ออกแล้ว สามารถแทนที่ด้วย Entity.getAlpha(Space.Activity)
  • นำ Entity.getWorldSpaceScale ออกแล้ว สามารถแทนที่ด้วย Entity.getScale(Space.REAL\_WORLD)
  • เราได้ลบคลาสเซสชันใน SceneCore ออกแล้วเพื่อใช้เซสชันใน XR Runtime แทน
  • เปลี่ยนชื่อ StereoSurfaceEntity เป็น SurfaceEntity แล้ว
  • ระบบได้นำ Entity.setSize และ Entity.getSize ออกแล้ว และได้เพิ่มวิธีการเดียวกันนี้ลงใน PanelEntity
  • เปลี่ยนชื่อ PointSourceAttributes เป็น PointSourceParams แล้ว
  • เปลี่ยนชื่อ SpatializerConstants.SOURCE\_TYPE\_BYPASS เป็น SpatializerConstants.SOURCE\_TYPE\_DEFAULT แล้ว
  • มีการแก้ไขเอนทิตี PointSourceParams จากการเข้าถึงแบบสาธารณะเป็นการเข้าถึงภายใน
  • ตอนนี้ AnchorEntity.create กำหนดให้ต้องกำหนดค่า PlaneTrackingMode ใน Session.configure()
  • SpatialUser API กำหนดให้ต้องกำหนดค่า HeadTrackingMode ใน Session.configure() แล้ว
  • เมื่อไม่ได้แนบ ResizableComponent ระบบจะแสดงบันทึกระดับ INFO แทนบันทึกระดับ ERROR
  • ตอนนี้คลาส Fov เป็นคลาส Kotlin ปกติแล้ว
  • แยก Entity.kt เพื่อวางเอนทิตีประเภทคอนกรีตแต่ละประเภทลงในไฟล์ของตัวเอง
  • เมื่อสร้าง PanelEntity ใหม่ ระบบจะเปลี่ยนFrameLayoutส่วนใหญ่ให้เป็นFrameLayout ซึ่งช่วยให้ใช้ LayoutInspector กับแผงเชิงพื้นที่ได้
  • ตอนนี้ระบบได้ลงทะเบียนอินสแตนซ์ XrExtensions ที่ใช้อยู่กับแพลตฟอร์มแล้วด้วยวิธีที่ดีที่สุดเพื่อช่วยในการแก้ไขข้อบกพร่องของแอป

การแก้ไขข้อบกพร่อง

  • เราได้เพิ่มการแก้ไขเพื่อป้องกันการขัดข้องที่อาจเกิดขึ้นเมื่อย้าย PanelEntity ที่มี MovableComponent และ AnchorPlacement
  • แก้ไขปัญหาที่ ResizableComponent แสดงขนาดที่ล้าสมัยในแฮนเดิล onResizeStart
  • แก้ไขข้อขัดข้องเมื่อมีการเรียกใช้ JxrPlatformAdapterAxr ของ dispose() หลายครั้ง

เวอร์ชัน 1.0.0-alpha03

26 กุมภาพันธ์ 2025

androidx.xr.scenecore:scenecore:1.0.0-alpha03 และ androidx.xr.scenecore:scenecore-testing:1.0.0-alpha03 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha03 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้ระบบรองรับการลดขนาด Proguard สำหรับโค้ด Jetpack XR แล้ว

การแก้ไขข้อบกพร่อง

  • การแก้ไขเพิ่มเติมเพื่อรองรับการลดขนาด Proguard สำหรับ Jetpack XR SceneCore (I4f47e)
  • อัปเดตกฎ Jetpack XR Scenecore ProGuard เพื่อป้องกัน AbstractMethodError สำหรับไคลเอ็นต์ที่ย่อขนาด (I91a01)

เวอร์ชัน 1.0.0-alpha02

12 กุมภาพันธ์ 2025

androidx.xr.scenecore:scenecore:1.0.0-alpha02 และ androidx.xr.scenecore:scenecore-testing:1.0.0-alpha02 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha02 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลงแบบไม่รองรับเวอร์ชันก่อนหน้าที่จะเกิดขึ้นซึ่งส่งผลต่อแอปที่สร้างก่อน 1.0.0-alpha02

  • เราได้ย้ายเมธอดของ Factory จากคลาส Session ไปยังเมธอดคู่กันในแต่ละประเภทที่เกี่ยวข้องแล้ว ดังนี้
    • ระบบได้ลบ Session.createActivityPanelEntity(Dimensions, String, Activity, Pose) และแทนที่ด้วย ActivityPanelEntity.create(Session, Dimensions, String, Pose) แล้ว
    • ระบบได้ลบ Session.createAnchorEntity(Anchor) และแทนที่ด้วย AnchorEntity.create(Session, Anchor) แล้ว
    • ระบบได้ลบ Session.createAnchorEntity(Dimensions, Int, Int, Duration) และแทนที่ด้วย AnchorEntity.create(Session, Dimensions, Int, Int, Duration) แล้ว
    • ระบบได้ลบ Session.createEntity(String, Pose) และแทนที่ด้วย ContentlessEntity.create(Session, String, Pose) แล้ว
    • ระบบได้ลบ Session.createExrImageResource(String) และแทนที่ด้วย ExrImage.create(Session, String) แล้ว
    • ระบบได้ลบ Session.createGltfEntity(GltfModel, Pose) และแทนที่ด้วย GltfModelEntity.create(Session, GltfModel, Pose) แล้ว
    • ระบบได้ลบ Session.createGltfModelResource(String) และแทนที่ด้วย GltfModel.create(Session, String) แล้ว
    • ระบบได้ลบ Session.createInteractableComponent(Executor, InputEventListener) และแทนที่ด้วย InteractableComponent.create(Session, Executor, InputEventListener) แล้ว
    • ระบบได้ลบ Session.createMovableComponent(Boolean, Boolean, Set<AnchorPlacement>, Boolean) และแทนที่ด้วย MovableComponent.create(Session, Boolean, Boolean, Set<AnchorPlacement>, Boolean) แล้ว
    • ระบบได้ลบ Session.createPanelEntity(View, Dimensions, Dimensions, String, Pose) และแทนที่ด้วย PanelEntity.create(Session, View, Dimensions, Dimensions, String, Pose) แล้ว
    • ระบบได้ลบ Session.createResizableComponent(Dimensions, Dimensions) และแทนที่ด้วย ResizableComponent.create(Session, Dimensions, Dimensions) แล้ว
    • ระบบได้ลบ Session.createStereoSurfaceEntity(Int, Dimensions, Pose) และแทนที่ด้วย StereoSurface.create(Session, Int, Dimensions, Pose) แล้ว
  • ระบบได้นำเมธอดที่เลิกใช้งานแล้วต่อไปนี้ออกแล้ว
    • ลบ Session.canEmbedActivityPanel(Activity) แล้ว โปรดใช้ getSpatialCapabilities.hasCapabilility(SPATIAL_CAPABILITY_EMBED_ACTIVITY) แทน
    • ลบ Session.hasSpatialCapability(Int) แล้ว เราได้แทนที่ด้วยการใช้ getSpatialCapabilities().hasCapability() เพื่อเป็นวิธีที่แยกส่วนมากขึ้นในการตรวจสอบว่ามีฟีเจอร์เชิงพื้นที่หรือไม่ เนื่องจาก getSpatialCapabilities() จะแสดงผลออบเจ็กต์ SpatialCapabilities
    • ระบบได้ลบ Session.requestFullSpaceMode() และแทนที่ด้วย SpatialEnvironment.requestFullSpaceMode() แล้ว
    • ระบบได้ลบ Session.requestHomeSpaceMode() และแทนที่ด้วย SpatialEnvironment.requestHomeSpaceMode() แล้ว
  • Session.setFullSpaceMode(Bundle) และ Session.setFullSpaceModeWithEnvironmentInherited(Bundle) ได้ย้ายไปอยู่ในฟังก์ชันส่วนขยายแล้ว ไฟล์ของนักพัฒนาแอปจะต้องเพิ่มการนำเข้าใหม่เพื่อเข้าถึง ดังนี้
    • import androidx.xr.scenecore.setFullSpaceMode
    • import androidx.xr.scenecore.setFullSpaceModeWithEnvironmentInherited
  • Session.setPreferredAspectRatio(Activity, Float) ถูกย้ายไปเป็นฟังก์ชันส่วนขยายแล้ว นักพัฒนาแอปจะต้องเพิ่มการนำเข้าใหม่เพื่อเข้าถึงไฟล์ ดังนี้
    • import androidx.xr.scenecore.setPreferredAspectRatio
  • Session.getEntitiesOfType(Class<out T>) และ Session.getEntityForRtEntity(RtEntity) ได้ย้ายไปอยู่ในฟังก์ชันส่วนขยายแล้ว ไฟล์ของนักพัฒนาแอปจะต้องเพิ่มการนำเข้าใหม่เพื่อเข้าถึง ดังนี้
    • import androidx.xr.scenecore.getEntitiesOfType
    • import androidx.xr.scenecore.getEntityForRtEntity
  • ลบ Session.unpersistAnchor(Anchor) แล้ว
  • ลบ Session.createPersistedAnchorEntity(UUID) แล้ว

ปัญหาที่ทราบแล้ว

  • PanelEntity.setCornerRadius() และ ActivityPanelEntity.setCornerRadius() อาจไม่มีผลจนกว่าจะมีการย้ายแผงในครั้งถัดไป ซึ่งสามารถแก้ไขได้โดยการย้ายแผงไปยังตำแหน่งปัจจุบัน
  • เมื่อมีการเรียกใช้ BoundsChanged ใน ActivitySpace ActivityPose บางรายการอาจไม่อัปเดตอย่างถูกต้อง โดยจะมีการอัปเดตในสายการประชุม OnSpaceUpdated ครั้งถัดไปในวันที่ ActivitySpace

การเปลี่ยนแปลงด้านการแตกหักและพฤติกรรม

  • PanelEntity และ ActivityPanelEntity จะมีรัศมีมุมเริ่มต้นที่ 32dp หรือเล็กกว่า หากแผงมีความกว้างหรือความสูงน้อยกว่า 32dp

API และความสามารถใหม่ๆ

  • เปิดตัว StereoSurface.CanvasShape ซึ่งช่วยให้สร้าง Canvas Spherical และ Hemispherical เพื่อแสดงผลสื่อที่สมจริงได้
  • StereoSurfaceEntity.create() ตอนนี้ยอมรับพารามิเตอร์ CanvasShape แล้ว (ปัจจุบันระบบจะไม่สนใจพารามิเตอร์นี้ แต่จะนำไปใช้ในรุ่นต่อๆ ไป)
  • StereoSurfaceEntity.create() ไม่รับพารามิเตอร์ Dimensions อีกต่อไป แอปพลิเคชันควรควบคุมขนาดของ Canvas ผ่านการตั้งค่า CanvasShape
  • StereoSurfaceEntity มีสมาชิก CanvasShape ซึ่งตั้งค่าแบบไดนามิกได้
  • ตอนนี้ StereoSurfaceEntity.dimensions เป็นพร็อพเพอร์ตี้แบบอ่านอย่างเดียวแล้ว แอปพลิเคชันควรตั้งค่า CanvasShape เพื่อเปลี่ยนมิติข้อมูล
  • StereoSurfaceEntity อนุญาตให้StereoMode รีเซ็ตได้หลังจากการก่อสร้าง

การเปลี่ยนแปลงอื่นๆ

  • ลด minSDK ในเวลาคอมไพล์เป็น 24 API ของ Jetpack XR ทั้งหมดจะยังคงต้องใช้ API 34 ในเวลาเรียกใช้
  • Session factory ของ SceneCore (Session.create) จะไม่เปิดใช้ Intent เพื่อขอสิทธิ์ SCENE_UNDERSTANDING อีกต่อไป แต่แอปพลิเคชันไคลเอ็นต์ต้องขอสิทธิ์จากผู้ใช้อย่างชัดเจนก่อนที่จะพยายามสร้าง Anchor การสร้าง Anchor จะล้มเหลวหากผู้ใช้ไม่ได้ให้สิทธิ์

แก้ไขข้อบกพร่อง

  • เราได้แก้ไข getActivitySpacePose() เพื่อพิจารณาสเกล ActivitySpace โดยการแสดงผลค่าการแปลเป็นเมตรที่ปรับขนาดแล้ว แทนที่จะแสดงผลเป็นเมตรที่ไม่ได้ปรับขนาดเสมอไป transformPoseTo ตอนนี้ยังใช้หน่วยที่ถูกต้องในการคำนวณการเปลี่ยนแปลงพิกัดเมื่อ ActivitySpace เกี่ยวข้องกับแหล่งที่มาหรือปลายทางด้วย
  • ตอนนี้ระบบจะตั้งค่ากล่องท้องฟ้าเป็นกล่องท้องฟ้าสีดำทั้งหมดทุกครั้งที่มีการส่งค่ากำหนดกล่องท้องฟ้าเป็น Null โดยใช้ setSpatialEnvironmentPreference(new SpatialEnvironmentPreference(null, geom)) หากต้องการเปลี่ยนกลับไปใช้กล่องท้องฟ้าและรูปทรงเรขาคณิตเริ่มต้นของระบบ ให้ใช้ setSpatialEnvironmentPreference(null).

เวอร์ชัน 1.0.0-alpha01

12 ธันวาคม 2024

androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 ได้รับการเผยแพร่แล้ว

ฟีเจอร์ของการเปิดตัวครั้งแรก การเปิดตัว Jetpack SceneCore สำหรับนักพัฒนาแอปครั้งแรก ซึ่งเป็นไลบรารีกราฟฉาก 3 มิติสำหรับสร้างและจัดการฉากและสภาพแวดล้อมที่สมจริง ไลบรารีนี้ช่วยให้คุณวางและจัดเรียงโมเดล 3 มิติและแผงเนื้อหาโดยสัมพันธ์กันและสภาพแวดล้อมเสมือนจริงหรือโลกจริง

  • SpatialEnvironment: สร้างประสบการณ์การใช้งานที่สมจริงอย่างเต็มรูปแบบด้วยภาพ Skybox และ/หรือรูปเรขาคณิตของโมเดล 3 มิติเป็นฉากหลังสำหรับฉาก XR ของสภาพแวดล้อม หรือเปิดใช้การส่งผ่านเพื่อให้ฉากเสมือนผสานรวมกับสภาพแวดล้อมจริงของผู้ใช้ได้
  • PanelEntity: เพิ่มเนื้อหา 2 มิติลงในฉาก 3 มิติโดยการฝังเลย์เอาต์และกิจกรรม Android มาตรฐานลงในแผงเชิงพื้นที่ที่ลอยหรือยึดกับพื้นผิวในโลกจริงได้
  • GltfModelEntity: วาง สร้างภาพเคลื่อนไหว และโต้ตอบกับโมเดล 3 มิติในฉาก SceneCore รองรับรูปแบบไฟล์ glTF เพื่อให้ผสานรวมกับโมเดลที่มีอยู่ได้ง่าย
  • SpatialAudio: เพิ่มแหล่งเสียงรอบข้างและแหล่งเสียงเฉพาะจุดลงในฉาก 3 มิติเพื่อให้ได้เสียงรอบทิศทางที่สมจริงและสมบูรณ์
  • StereoSurfaceEntity: SceneCore รองรับการกำหนดเส้นทางเนื้อหาที่แสดงผลบน Android Surface สำหรับตาซ้าย/ขวา ซึ่งใช้ในการแสดงเนื้อหาสเตอริโอสโคปในรูปแบบข้างต่อข้างหรือบนต่อล่างได้ เช่น ภาพถ่ายสเตอริโอ วิดีโอ 3 มิติ หรือ UI อื่นๆ ที่แสดงผลแบบไดนามิก แอปพลิเคชันควรใช้ MediaPlayer หรือ ExoPlayer สำหรับการถอดรหัสวิดีโอ
  • ระบบคอมโพเนนต์: SceneCore มีระบบคอมโพเนนต์ที่แข็งแกร่งและยืดหยุ่นสำหรับการเพิ่มความสามารถให้กับเนื้อหา XR ซึ่งรวมถึงความสามารถที่ผู้ใช้จะย้าย ปรับขนาด และโต้ตอบกับโมเดลและแผง
  • Anchor: เมื่อเปิดใช้การส่งผ่าน คุณจะแนบแผงและโมเดลกับพื้นผิวจริงได้ ซึ่งจะช่วยให้ผู้ใช้ผสานรวมเนื้อหาเสมือนเข้ากับสภาพแวดล้อมจริงได้อย่างราบรื่น
  • ท่าทางของผู้ใช้: เข้าถึงตำแหน่งของผู้ใช้ในฉากเสมือนเพื่อจัดวางเนื้อหาตามตำแหน่งของผู้ใช้
  • SpatialCapabilities: สร้างแอปที่ปรับเปลี่ยนได้อย่างเต็มที่ซึ่งใช้ประโยชน์จากความสามารถเชิงพื้นที่เมื่อพร้อมใช้งาน เช่น การวางตำแหน่งเนื้อหา UI แบบ 3 มิติ นอกจากนี้ แอปยังตรวจสอบการเปลี่ยนแปลงความสามารถขณะที่แอปกำลังทำงานเพื่อปรับเปลี่ยนประสบการณ์ตามวิธีที่ผู้ใช้ใช้อุปกรณ์ Android XR ได้ด้วย

ปัญหาที่ทราบ

  • ปัจจุบันต้องใช้ minSDK 30 เพื่อใช้ Jetpack SceneCore วิธีแก้ปัญหาชั่วคราวคือเพิ่มรายการไฟล์ Manifest ต่อไปนี้ <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> เพื่อให้สามารถสร้างและเรียกใช้ด้วย minSDK 23 ได้
  • เซสชันอาจไม่ถูกต้องในสถานการณ์ต่างๆ ที่สร้างกิจกรรมขึ้นมาใหม่โดยอัตโนมัติ ซึ่งรวมถึงการปรับขนาดแผงหลัก การเชื่อมต่ออุปกรณ์ต่อพ่วง และการเปลี่ยนระหว่างโหมดสว่างและโหมดมืด หากพบปัญหาการทำให้เซสชันไม่ถูกต้อง วิธีแก้ปัญหาชั่วคราว ได้แก่ การทำให้แผงหลักไม่สามารถปรับขนาดได้ การใช้เอนทิตีแผงแบบไดนามิก การปิดใช้การสร้างกิจกรรมใหม่สำหรับการเปลี่ยนแปลงการกำหนดค่าที่เฉพาะเจาะจง หรือการปิดใช้การเปลี่ยนแปลงธีมโหมดสว่าง/มืด
  • GltfEntity ไม่รองรับคอมโพเนนต์ที่ย้ายและปรับขนาดได้
  • GltfEntity ไม่รองรับ Entity.getSize()
  • แอป Jetpack XR ต้องขอสิทธิ์ android.permission.SCENE_UNDERSTANDING ใน AndroidManifest
  • การสร้างเซสชันรองรับเฉพาะในอุปกรณ์ Android XR ในตอนนี้ หากคุณสร้างเซสชันและพยายามใช้ในอุปกรณ์ XR ที่ไม่ใช่ Android คุณจะได้รับ RuntimeException
  • การตั้งค่า Skybox เป็น null ผ่าน `SpatialEnvironment.setSpatialEnvironmentPreference()` จะไม่ทำให้เกิด Skybox สีดำทึบตามที่ระบุไว้ในเอกสาร ซึ่งอาจส่งผลให้ระบบใช้สกายบ็อกซ์เริ่มต้นหรือไม่มีการเปลี่ยนแปลงสกายบ็อกซ์ปัจจุบัน
  • ไคลเอ็นต์ SceneCore ควรเพิ่ม implementation(“com.google.guava:listenablefuture-1.0”) ลงในการกำหนดค่า Gradle สำหรับการอ้างอิงของแอป ในรุ่นที่จะเปิดตัวในอนาคต Scenecore จะรวมไลบรารีนี้เป็นapi Dependency เพื่อให้ไคลเอ็นต์ไม่ต้องประกาศอย่างชัดแจ้ง
  • SceneCore มี com.google.guava:guava-31.1-android และ com.google.protobuf:protobuf-javalite เป็นการขึ้นต่อกันแบบทรานซิทีฟโดยไม่ถูกต้อง หากการดำเนินการนี้ทำให้เกิดข้อผิดพลาดเกี่ยวกับคลาสที่ซ้ำกันในการสร้าง คุณสามารถยกเว้นการขึ้นต่อกันทั้ง 2 รายการนี้ได้อย่างปลอดภัย
  • หากแอปใช้ SceneCore และเปิดใช้ ProGuard แอปจะขัดข้องเมื่อคุณ สร้างเซสชัน คุณแก้ไขปัญหาเบื้องต้นได้โดยปิดใช้ ProGuard ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีเปิดใช้ ProGuard ได้ที่คำแนะนำ นี้