بررسی در دسترس بودن دستگاه در زمان اجرا برای عینک‌های هوش مصنوعی

با گذشت روز، ممکن است اتصال عینک هوش مصنوعی کاربر به دستگاه میزبان (مانند تلفن کاربر) قطع شود یا اگر عینک خود را بردارد، عینک او موقتاً از دسترس خارج شود. برای در نظر گرفتن این نوع تغییرات در دسترس بودن دستگاه، برنامه شما می‌تواند از API دسترسی به دستگاه XR استفاده کند که سیگنال‌های دسترسی به دستگاه را در مقادیر استاندارد Lifecycle.State اندروید ادغام می‌کند. از این API برای مدیریت مسیریابی صوتی، فعال‌سازی کلمات کلیدی و دانستن زمان انتظار ورودی کاربر بر اساس زمان در دسترس بودن عینک هوش مصنوعی استفاده کنید.

درک وضعیت‌های چرخه حیات

جدول زیر نحوه نگاشت سیگنال‌های دسترسی‌پذیری دستگاه به مقادیر Lifecycle.State را نشان می‌دهد.

وضعیت چرخه حیات

وضعیت دستگاه

توضیحات

INITIALIZED

ایجاد شده

شیء چرخه حیات ایجاد شده است اما هنوز مشاهده نشده است.

CREATED

غیرفعال

سرویس متصل است، اما کاربر دستگاه را استفاده نمی‌کند.

STARTED

فعال

کاربر دستگاه را پوشیده است.

DESTROYED

قطع ارتباط

دستگاه قطع شده یا اتصال سرویس از بین رفته است.

بررسی و نظارت بر در دسترس بودن دستگاه

برای بررسی و نظارت بر در دسترس بودن دستگاه، از یک زمینه پیش‌بینی‌شده به همراه وضعیت چرخه عمر استفاده خواهید کرد تا مشخص شود که برنامه شما چگونه باید هر مورد را مدیریت کند:

    val xrDevice = XrDevice.getCurrentDevice(projectedContext)

    xrDevice.getLifecycle().currentStateFlow
        .takeWhile { it != Lifecycle.State.DESTROYED }
        .collect { state ->
            when (state) {
                Lifecycle.State.STARTED -> { /* Device is ACTIVE (worn) */ }
                Lifecycle.State.CREATED -> { /* Device is INACTIVE (not worn) */ }
                else -> { /* Handle other states */ }
            }
        }
}

نکات کلیدی در مورد کد

  • بررسی اتصال : قبل از دسترسی به چرخه حیات دستگاه، برای تأیید اتصال دستگاه نمایش داده شده به دستگاه میزبان، ProjectedContext.isProjectedDeviceConnected را فراخوانی کنید.
  • دریافت یک ProjectedContext : فقط پس از تأیید اتصال، ProjectedContext.createProjectedDeviceContext را فراخوانی کنید و مطمئن شوید که این context را به نمونه XrDevice خود منتقل می‌کنید.
  • مدیریت نامعتبرسازی زمینه : هر بار که یک دستگاه پیش‌بینی‌شده متصل می‌شود، یک deviceId جدید ایجاد می‌شود. به محض رسیدن وضعیت به DESTROYED ، ProjectedContext فعلی نامعتبر است. فوراً استفاده از آن را متوقف کنید و منتظر اتصال جدید باشید.
  • بهینه‌سازی باتری و منابع : عملکرد برنامه را بر اساس وضعیت چرخه عمر به طور مناسب مدیریت کنید تا منابع سیستم حفظ شده و مصرف باتری کاهش یابد. به عنوان مثال، وقتی وضعیت به CREATED تغییر می‌کند، باید نمایش محتوای رابط کاربری به عینک‌های هوش مصنوعی را متوقف کنید.