Session میانای اصلی را برای عملکرد فضاییشده
برنامه شما ارائه میدهد. هر Activity فضاییشده باید یک نمونه از
Session ایجاد و نگهداری کند. پساز اینکه برنامهتان جلسهای ایجاد کرد، میتواند از رابطهای Session
برای ایجاد نهادهای محتوای فضاییشده مانند پانلها یا مدلهای سهبعدی، و همچنین
تنظیم محیط فضایی، شناسایی موقعیت دستگاه، و لنگر انداختن
محتوا در دنیای واقعی استفاده کند.
دسترسی به جلسه از Jetpack Compose برای واقعیت گسترده
هنگام استفاده از 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
- افزودن محیطهای فضایی به برنامه
- افزودن مدلهای سهبعدی به برنامه