Jetpack SceneCore
อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | รุ่นอัลฟ่า |
---|---|---|---|---|
7 พฤษภาคม 2025 | - | - | - | 1.0.0-alpha04 |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ใน XR SceneCore คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google
เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle
สำหรับแอปหรือโมดูลของคุณ
ดึงดูด
dependencies { implementation "androidx.xr.scenecore:scenecore:1.0.0-alpha04" // Required for Java implementation "com.google.guava:listenablefuture:1.0" // Required for Kotlin implementation "org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.9.0" // Use to write unit tests testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha04" }
Kotlin
dependencies { implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha04") // Required for Java implementation("com.google.guava:listenablefuture:1.0") // Required for Kotlin implementation("org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.9.0") // Use to write unit tests testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha04") }
ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพาบิลด์
ความคิดเห็น
ความคิดเห็นของคุณจะช่วยให้ Jetpack ทำงานได้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของเครื่องมือติดตามปัญหา
รุ่น 1.0
เวอร์ชัน 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
ซึ่งช่วยให้รับ/ตั้งค่าที่เกี่ยวข้องกับพื้นที่ต่างๆ ได้ ค่าที่รองรับ ได้แก่ พื้นที่สำหรับผู้ปกครอง กิจกรรม และโลกแห่งความจริง และค่าเริ่มต้นสำหรับพารามิเตอร์นี้คือ Parent - เพิ่มเมธอดส่วนขยาย Spatial Visibility Callback ลงใน
SessionExt.kt
เพื่อตรวจสอบเมื่อเนื้อหาฉากเคลื่อนที่ภายในหรือภายนอกฟิลด์มุมมองของผู้ใช้ - เพิ่ม
setPointSourceParams
ลงในSpatialAudioTrack
แล้ว ซึ่งจะช่วยให้คุณอัปเดตพารามิเตอร์ได้หลังจากสร้างแทร็กแล้ว - เพิ่มคลาสใหม่ชื่อ Scene พร้อมการอ้างอิงถึง
Scenecore
API โดยจะเข้าถึงฉากได้ในฐานะพร็อพเพอร์ตี้ส่วนขยายของเซสชัน ฟังก์ชันภายใน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
ซึ่งช่วยให้ใช้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
ซึ่งช่วยให้สร้าง CanvasSpherical
และ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: สร้างประสบการณ์การใช้งานที่สมจริงอย่างเต็มรูปแบบด้วยภาพสกายบ็อกซ์และ/หรือรูปทรงเรขาคณิตของโมเดล 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
- การตั้งค่ากล่องท้องฟ้าเป็น null ผ่าน `SpatialEnvironment.setSpatialEnvironmentPreference()` จะไม่ทำให้กล่องท้องฟ้าเป็นสีดำทึบตามที่ระบุไว้ในเอกสาร ซึ่งอาจส่งผลให้ระบบใช้สกายบ็อกซ์เริ่มต้นหรือไม่มีการเปลี่ยนแปลงสกายบ็อกซ์ปัจจุบัน
- ไคลเอ็นต์ SceneCore ควรเพิ่ม
implementation(“com.google.guava:listenablefuture-1.0”)
ลงในการกำหนดค่า Gradle สำหรับการอ้างอิงของแอป ในรุ่นต่อๆ ไป scenecore จะรวมไลบรารีนี้เป็นapi
การอ้างอิงเพื่อให้ไคลเอ็นต์ไม่ต้องประกาศอย่างชัดแจ้ง - SceneCore มี
com.google.guava:guava-31.1-android
และcom.google.protobuf:protobuf-javalite
เป็นการขึ้นต่อกันแบบทรานซิทีฟโดยไม่ถูกต้อง หากการดำเนินการนี้ทำให้เกิดข้อผิดพลาดเกี่ยวกับคลาสที่ซ้ำกันในการสร้าง คุณสามารถยกเว้นการอ้างอิงทั้ง 2 รายการนี้ได้อย่างปลอดภัย - หากแอปใช้ SceneCore และเปิดใช้ ProGuard แอปจะขัดข้องเมื่อคุณ สร้างเซสชัน คุณแก้ไขปัญหาเบื้องต้นได้โดยปิดใช้ ProGuard ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีเปิดใช้ ProGuard ได้ที่คำแนะนำ นี้