Session มีอินเทอร์เฟซหลักสำหรับฟังก์ชันการทำงานเชิงพื้นที่สำหรับแอปของคุณ Activity เชิงพื้นที่แต่ละรายการต้องสร้างและเก็บอินสแตนซ์ของ Session ไว้ หลังจากสร้างเซสชันแล้ว แอปจะใช้อินเทอร์เฟซ Session เพื่อสร้างเอนทิตีเนื้อหาเชิงพื้นที่ เช่น แผงหรือโมเดล 3 มิติ รวมถึงตั้งค่าสภาพแวดล้อมเชิงพื้นที่ ระบุตำแหน่งของผู้ใช้ และตรึงเนื้อหาไว้กับโลกจริงได้
เข้าถึงเซสชันจาก Jetpack Compose สำหรับ XR
เมื่อใช้ Jetpack Compose สำหรับ XR ระบบจะสร้างเซสชันให้คุณและเข้าถึงได้โดยใช้ LocalSession.current โปรดดูตัวอย่างต่อไปนี้
@Composable fun ComposableUsingSession() { val session = LocalSession.current }
เข้าถึงเซสชันจาก Jetpack XR Runtime
หากคุณกำลังสร้างเอนทิตีเชิงพื้นที่จากไลบรารี Jetpack SceneCore คุณจะต้องสร้างเซสชัน
หากต้องการสร้างเซสชัน ให้ส่ง Context ไปยังเมธอด create() Context นี้อาจเป็นActivityในอุปกรณ์ XR ที่สมจริงหรืออุปกรณ์เคลื่อนที่ หรือบริบทที่ฉายในแว่นตาอัจฉริยะ
การสร้างเซสชัน ARCore อาจเป็นงานที่มีค่าใช้จ่ายสูง และควรประมวลผลในเบื้องหลัง ดังที่แสดงในตัวอย่างต่อไปนี้
lifecycleScope.launch { when (val result = Session.create(context)) { is SessionCreateSuccess -> { val xrSession = result.session // ... } else -> TODO(/* A different unhandled exception was thrown. */) } }
ฟังก์ชัน create() สามารถใช้พารามิเตอร์ LifecycleOwner ที่ไม่บังคับ ซึ่งช่วยให้ LifecycleOwner อื่นจัดการวงจรของเซสชันได้ LifecycleOwner ต้องเริ่มต้นและสิ้นสุดวงจรภายในขอบเขตของบริบทที่ระบุ ไม่เช่นนั้น Session อาจเสี่ยงต่อการรั่วไหล
ดูเพิ่มเติม
- ตรวจสอบความสามารถเชิงพื้นที่
- การเปลี่ยนระหว่าง HSM และ FSM
- เพิ่มสภาพแวดล้อมเชิงพื้นที่ลงในแอป
- เพิ่มโมเดล 3 มิติลงในแอป