{ } { }

Jetpack SceneCore

สร้างและจัดการกราฟฉาก Android XR ด้วยเนื้อหา 3 มิติ
อัปเดตล่าสุด รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า เวอร์ชันอัลฟ่า
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 ซึ่งช่วยให้รับ/ตั้งค่าค่าที่เกี่ยวข้องกับพื้นที่ทำงานต่างๆ ได้ ค่าที่รองรับ ได้แก่ หลัก กิจกรรม และพื้นที่ในชีวิตจริง และค่าเริ่มต้นของพารามิเตอร์นี้คือ หลัก
  • เพิ่มเมธอดส่วนขยายการเรียกกลับการแสดงผลภาพในพื้นที่ไปยัง SessionExt.kt เพื่อตรวจสอบเมื่อเนื้อหาฉากเคลื่อนไหวภายในหรือนอกมุมมองของผู้ใช้
  • เพิ่ม setPointSourceParams ลงใน SpatialAudioTrack แล้ว ซึ่งจะช่วยให้อัปเดตพารามิเตอร์ได้หลังจากสร้างแทร็กแล้ว
  • เพิ่มคลาสใหม่ชื่อ Scene พร้อมการอ้างอิงถึง Scenecore API ฉากจะเข้าถึงได้ในฐานะพร็อพเพอร์ตี้ส่วนขยายของเซสชัน ฟังก์ชันภายใน SessionExt ได้ย้ายไปยังฉากแล้ว คุณจึงต้องปรับการนําเข้า เช่น SessionExt.getScene(session)addSpatialCapababilitiesChangedListener เทียบกับ SessionExt.addSpatialCapabilitiesChangedListener
  • เพิ่ม ActivityPose.hitTestAsync ซึ่งทำให้สามารถ hitTest เนื้อหาเสมือนจริงได้
  • เพิ่มประเภทคอมโพเนนต์ใหม่ SpatialPointerComponent ซึ่งช่วยให้ลูกค้าระบุไอคอนที่แสดงผลสำหรับเคอร์เซอร์หรือปิดใช้ไอคอนได้ ปัจจุบันคอมโพเนนต์นี้แนบกับอินสแตนซ์ PanelEntity รายการเท่านั้น
  • ขอแนะนํา PanelEntity Factory ใหม่ ซึ่งจะรับขนาดแผงเป็นเมตรหรือพิกเซล นำโรงงาน 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()
  • ตอนนี้ API ของ SpatialUser ต้องกำหนดค่า HeadTrackingMode ใน Session.configure()
  • เมื่อไม่ได้แนบ ResizableComponent ระบบจะแสดงบันทึกระดับ INFO แทนบันทึกระดับ ERROR
  • ตอนนี้คลาส Fov เป็นคลาส Kotlin ปกติแล้ว
  • แยก Entity.kt เพื่อวางเอนทิตีที่เฉพาะเจาะจงแต่ละประเภทไว้ในไฟล์ของตัวเอง
  • เมื่อสร้าง PanelEntity ใหม่ ระบบจะจัดทําให้ข้อมูลพร็อพเพอร์ตี้ส่วนใหญ่เป็นข้อมูลพร็อพเพอร์ตี้หลักของ FrameLayout ซึ่งจะช่วยให้ใช้ LayoutInspector กับแผงเชิงพื้นที่ได้ง่ายขึ้น
  • อินสแตนซ์ XrExtensions ที่ใช้อยู่ในขณะนี้ได้รับการลงทะเบียนกับแพลตฟอร์มแล้วอย่างดีที่สุดเพื่อช่วยแก้ไขข้อบกพร่องของแอป

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

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

เวอร์ชัน 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)
  • อัปเดตกฎ ProGuard ของ Scenecore ใน Jetpack XR เพื่อป้องกัน AbstractMethodError สำหรับไคลเอ็นต์ที่ผ่านการ Minify (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

  • ย้ายเมธอดการสร้างจากคลาส 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() โดยใช้ 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 จะมีรัศมีมุมเริ่มต้น 32 dp หรือน้อยกว่านั้นหากแผงมีความกว้างหรือความสูงน้อยกว่า 32 dp

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

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

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

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

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

  • 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 เพื่อให้ผสานรวมกับโมเดลที่มีอยู่ได้ง่าย
  • เสียงรอบทิศทาง: เพิ่มแหล่งเสียงรอบทิศทางและเสียงจุดลงในฉาก 3 มิติเพื่อให้ได้เสียงที่สมจริงและสมจริง
  • StereoSurfaceEntity: SceneCore รองรับการกำหนดเส้นทางเนื้อหาที่แสดงผลบนพื้นผิว Android สำหรับตาซ้าย/ขวา ซึ่งสามารถใช้เพื่อแสดงผลเนื้อหาภาพสเตอริโอในรูปแบบคู่ขนานหรือบนล่าง เช่น รูปภาพสเตอริโอ วิดีโอ 3 มิติ หรือ UI แบบอื่นๆ ที่แสดงผลแบบไดนามิก แอปพลิเคชันควรใช้ MediaPlayer หรือ ExoPlayer ในการถอดรหัสวิดีโอ
  • ระบบคอมโพเนนต์: SceneCore มีระบบคอมโพเนนต์ที่มีประสิทธิภาพและยืดหยุ่นสำหรับการเพิ่มความสามารถให้กับเนื้อหา XR รวมถึงการอำนวยความสะดวกให้ผู้ใช้ย้าย ปรับขนาด และโต้ตอบกับโมเดลและแผง
  • ยึด: เมื่อเปิดใช้โหมดนี้ คุณจะยึดแผงและโมเดลกับพื้นผิวจริงได้ ซึ่งช่วยให้ผู้ใช้ผสานรวมเนื้อหาเสมือนจริงเข้ากับสภาพแวดล้อมจริงได้อย่างราบรื่น
  • ท่าทางของผู้ใช้: เข้าถึงตําแหน่งของผู้ใช้ในฉากเสมือนจริงเพื่อปรับแนวเนื้อหาให้สอดคล้องกับตําแหน่งของผู้ใช้
  • 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 เท่านั้น ขณะนี้ หากคุณสร้างเซสชันและพยายามใช้เซสชันในอุปกรณ์ที่ไม่ใช่ Android XR คุณจะได้รับ RuntimeException
  • การตั้งค่าพื้นหลังท้องฟ้าเป็น Null ผ่าน `SpatialEnvironment.setSpatialEnvironmentPreference() ไม่ได้ทำให้พื้นหลังท้องฟ้าเป็นสีดําสนิทตามที่ระบุไว้ในเอกสาร ซึ่งอาจส่งผลให้ระบบใช้พื้นหลังท้องฟ้าเริ่มต้นหรือไม่มีการเปลี่ยนแปลงพื้นหลังท้องฟ้าปัจจุบัน
  • ไคลเอ็นต์ SceneCore ควรเพิ่ม implementation(“com.google.guava:listenablefuture-1.0”) ลงในการกำหนดค่า Gradle สำหรับทรัพยากร Dependencies ของแอป ในรุ่นที่จะออกในอนาคต Scenecore จะรวมไลบรารีนี้เป็น api Dependency เพื่อให้ลูกค้าไม่ต้องประกาศอย่างชัดแจ้ง
  • SceneCore รวม com.google.guava:guava-31.1-android และ com.google.protobuf:protobuf-javalite ไว้เป็น transitive dependencies โดยไม่ได้ตั้งใจ หากส่งผลให้เกิดข้อผิดพลาดของคลาสที่ซ้ำกันในบิลด์ คุณสามารถยกเว้นการพึ่งพา 2 รายการนี้ได้อย่างปลอดภัย
  • หากแอปใช้ SceneCore และเปิดใช้ ProGuard แอปจะขัดข้องเมื่อคุณสร้างเซสชัน วิธีแก้ปัญหาชั่วคราวคือปิดใช้ ProGuard ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีเปิดใช้ ProGuard ได้ในคู่มือนี้