เซสชัน

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

เข้าถึงเซสชันจาก Jetpack Compose สำหรับ XR

เมื่อใช้ Jetpack Compose สําหรับ XR ระบบจะสร้างเซสชันให้คุณและเข้าถึงได้โดยใช้ LocalSession.current โปรดดูตัวอย่างต่อไปนี้

import androidx.xr.compose.platform.LocalSession

class myActivity : Activity() {
   val xrSession = checkNotNull(LocalSession.current)
}

เข้าถึงเซสชันจาก Jetpack SceneCore

หากสร้างเอนทิตีที่แยกแยะพื้นที่ได้จากคลัง SceneCore คุณจะต้องสร้างอินสแตนซ์เซสชันด้วยตนเอง

การสร้างเซสชันใช้ได้ในอุปกรณ์ Android XR เท่านั้น ขณะนี้ หากสร้าง Session แล้วพยายามใช้กับอุปกรณ์ที่ไม่ใช่ Android XR คุณจะได้รับ NullPointerException

คุณสร้างเซสชันได้เพียง 1 รายการต่อกิจกรรม หากต้องการสร้างเซสชัน ให้ส่งกิจกรรมไปยังเมธอด create ดังที่แสดงในตัวอย่างต่อไปนี้ การพยายามสร้างเซสชันในอุปกรณ์ที่เข้ากันไม่ได้อาจทำให้เกิดข้อผิดพลาดรันไทม์

import androidx.xr.scenecore.Session

class myActivity : Activity() {
  val xrSession = Session.create(this)
}

เมื่อกิจกรรมของเซสชันถูกทำลาย UI เชิงพื้นที่และเนื้อหา 3 มิติทั้งหมดที่เชื่อมโยงกับเซสชันนั้นก็จะหายไปด้วย และเซสชันจะใช้งานไม่ได้อีกต่อไป

ดูเพิ่มเติม