برنامه‌ریزی برای پشتیبانی از انواع مختلف عینک‌های هوش مصنوعی

دستگاه‌های XR قابل اجرا
این راهنما به شما کمک می‌کند تا برای این نوع دستگاه‌های XR تجربه ایجاد کنید.
عینک هوش مصنوعی

انواع مختلف عینک‌های هوش مصنوعی قابلیت‌های متفاوتی دارند. برای مثال، در حالی که همه عینک‌های هوش مصنوعی از طریق صدا، تجربه شنیداری ارائه می‌دهند، برخی از عینک‌های هوش مصنوعی دارای نمایشگری نیز هستند که برنامه شما می‌تواند رابط‌های کاربری ساخته شده با Jetpack Compose Glimmer را در آن نمایش دهد.

برای ایجاد یک تجربه کاربری یکپارچه در طیف وسیعی از دستگاه‌های عینک هوش مصنوعی، Activity خود را برای عینک برنامه‌ریزی کنید تا قابلیت‌های دستگاه‌های مختلف را بررسی کند. این رویکرد با ایجاد یک فعالیت که رفتار آن را تطبیق می‌دهد، به جای چندین فعالیت که دستگاه‌های خاص را هدف قرار می‌دهند، توسعه را ساده می‌کند.

درک چرخه حیات فعالیت‌های پیش‌بینی‌شده

فعالیتی که برای عینک هوش مصنوعی می‌سازید مستقیماً روی دستگاه اجرا نمی‌شود، بلکه از یک دستگاه میزبان (مانند تلفن کاربر) به دستگاه نمایش داده می‌شود. فعالیت‌های اختصاصی که برای این منظور می‌سازید، فعالیت‌های نمایش داده شده هستند. چرخه حیات فعالیت‌های نمایش داده شده بر اساس چرخه حیات استاندارد فعالیت ساخته شده است، اما شامل چندین تفاوت کلیدی نیز می‌شود که از قابلیت‌های انواع مختلف عینک هوش مصنوعی پشتیبانی می‌کند.

شکل ۱. رویدادهای کلیدی در چرخه حیات فعالیت‌های پیش‌بینی‌شده.

در اینجا خلاصه‌ای از رویدادهای کلیدی، به همراه توضیحاتی در مورد تعاملات مختص فعالیت‌هایی که برای عینک‌های هوش مصنوعی نمایش داده می‌شوند، آورده شده است:

  • onCreate()
    • زمانی که فعالیت پیش‌بینی‌شده ایجاد می‌شود، فراخوانی می‌شود.
    • رابط کاربری Jetpack Compose Glimmer و سایر کامپوننت‌های برنامه خود را اینجا مقداردهی اولیه کنید.
  • onStart()
    • زمانی فراخوانی می‌شود که اکتیویتیِ پیش‌بینی‌شده در حال شروع است و کاربر از وجود برنامه آگاه است.
  • onResume()
    • زمانی فراخوانی می‌شود که اکتیویتیِ پیش‌بینی‌شده دوباره فوکوس را به دست آورد. در حالی که اکتیویتی در فوکوس است، قابل تعامل است و می‌تواند از ورودی‌های صفحه لمسی یا دکمه استفاده کند.
    • زمانی که عینک را دوباره روی چشم می‌گذارند (می‌زنند)، بعد از اینکه قبلاً از روی سرشان برداشته‌اند (درمی‌آورند)، این اصطلاح گفته می‌شود.
  • onPause()
    • زمانی فراخوانی می‌شود که اکتیویتیِ پیش‌بینی‌شده فوکوس را از دست می‌دهد، اما کاربر هنوز از برنامه شما آگاه است. در حالی که اکتیویتی از فوکوس خارج شده است، قابل تعامل نیست و مصرف ورودی را متوقف می‌کند.
  • onStop()
    • زمانی فراخوانی می‌شود که سیستم معتقد باشد کاربر دیگر از برنامه شما آگاه نیست.
    • وقتی عینک از سر برداشته می‌شود (در آورده می‌شود) فراخوانی می‌شود.
  • onDestroy()
    • زمانی فراخوانی می‌شود که فعالیت پیش‌بینی‌شده در شرف نابودی باشد. وقتی این فراخوانی می‌شود، سیستم تمام منابعی را که به فعالیت گره خورده‌اند، آزاد می‌کند.

درک کنید که چگونه وضعیت نمایش بر چرخه حیات فعالیت پیش‌بینی‌شده تأثیر می‌گذارد.

در یک Activity استاندارد، وضعیت چرخه حیات با خاموش شدن صفحه نمایش دستگاه تغییر می‌کند و معمولاً به onPause() یا onStop() منتقل می‌شود. در مقابل، چرخه حیات activity پیش‌بینی‌شده با روشن یا خاموش شدن صفحه نمایش عینک هوش مصنوعی تغییر نمی‌کند. این رفتار به این معنی است که activity پیش‌بینی‌شده شما حتی زمانی که صفحه نمایش خاموش است، در حالت Started (شروع‌شده) یا Resume (از سر گرفته‌شده) به اجرا ادامه می‌دهد، که به شما امکان می‌دهد تجربه صوتی برنامه شما بدون وقفه ادامه یابد.

سایر تغییرات وضعیت فعالیت که توسط رویدادهای مختلف سیستم و کاربر ایجاد می‌شوند، به روش معمول رفتار می‌کنند.

بفهمید که چگونه آگاهی کاربر بر فعالیت پیش‌بینی‌شده شما تأثیر می‌گذارد

کاربر می‌تواند از فعالیت پیش‌بینی‌شده شما آگاه باشد، حتی اگر قابل مشاهده نباشد. آگاهی به تمام راه‌هایی اشاره دارد که کاربر می‌تواند تجربیات برنامه شما را حس کند و با آنها تعامل داشته باشد، از جمله موارد زیر:

  • گوش دادن به صدا، بازخورد شنیداری یا سایر نشانه‌های صوتی.
  • اقدامات برنامه که یک چراغ LED رو به کاربر را فعال می‌کنند، مانند یک نشانگر حریم خصوصی در صورت دسترسی برنامه شما به دوربین یا میکروفون.

در این شرایط، کاربر از فعال بودن و واکنش نشان دادن عینک هوش مصنوعی آگاه است، حتی اگر به صفحه نمایش نگاه نکند:

  • حالت onStart() برای فعالیت‌های برنامه‌ریزی‌شده به این معنی است که فعالیت فعال است.
  • حالت onResume() به این معنی است که اکتیویتی قابل تعامل است و می‌تواند ورودی تاچ‌پد را دریافت کند، یا در حال دریافت ورودی اولیه از طریق dispatch است.

تا زمانی که کاربر از برنامه شما آگاه باشد، فعالیت شما فعال و در پیش‌زمینه باقی می‌ماند. اگر سیستم برای مدت کوتاهی هیچ سیگنال آگاهی را تشخیص ندهد، سیستم فعالیت را از پیش‌زمینه حذف کرده و در نهایت onStop() را فعال می‌کند.

فعالیت‌های پیش‌بینی‌شده و زمینه‌های پیش‌بینی‌شده را درک کنید

عینک‌های هوش مصنوعی به عنوان یک دستگاه متصل در نظر گرفته می‌شوند که قابلیت‌های تلفن کاربر را گسترش می‌دهد. یک زمینه‌ی پیش‌بینی‌شده، یک Context آگاه از دستگاه است که به برنامه‌ها اجازه می‌دهد تا با سخت‌افزار روی یک دستگاه عینک متصل - مانند حسگرها، دوربین یا میکروفون آن - به جای سخت‌افزار تلفن تعامل داشته باشند. همانطور که شما تجربیاتی را برای عینک‌های هوش مصنوعی توسعه می‌دهید، برنامه‌ی شما باید از یک زمینه‌ی پیش‌بینی‌شده برای دسترسی به سخت‌افزار عینک استفاده کند.

یک context پیش‌بینی‌شده می‌تواند به‌طور خودکار به برنامه شما بسته به context اکتیویتیِ فراخوانی‌کننده اعطا شود:

  • برای فعالیت‌های پیش‌بینی‌شده : اگر کد برنامه شما از درون فعالیت پیش‌بینی‌شده شما اجرا می‌شود، زمینه فعالیت خودش از قبل یک زمینه پیش‌بینی‌شده است. در این سناریو، فراخوانی‌های انجام‌شده در آن فعالیت می‌توانند از قبل به سخت‌افزار عینک دسترسی داشته باشند.

  • برای برنامه‌ها یا سرویس‌های تلفن : اگر بخشی از برنامه شما خارج از activity پیش‌بینی‌شده شما (مانند activity تلفن یا یک سرویس) نیاز به دسترسی به سخت‌افزار عینک داشته باشد، باید صریحاً یک context پیش‌بینی‌شده را دریافت کند. برای انجام این کار، از متد createProjectedDeviceContext() استفاده کنید.

برای اطلاعات بیشتر، به «استفاده از یک زمینه پیش‌بینی‌شده برای دسترسی به سخت‌افزار عینک هوش مصنوعی» مراجعه کنید.

درک APIهای آگاه از دستگاه

برخی از APIهای استاندارد اندروید، بسته به Context مربوط به activity فراخوانی، سخت‌افزار دستگاهی که به آن دسترسی دارند را تغییر می‌دهند. وقتی این APIها یک context پیش‌بینی‌شده دریافت می‌کنند، به جای سخت‌افزار دستگاه تلفن میزبان، به سخت‌افزار عینک هوش مصنوعی دسترسی پیدا می‌کنند:

  • CameraManager : به دوربین روی عینک دسترسی پیدا می‌کند.
  • SensorManager : داده‌های حسگر (مثلاً داده‌های ژیروسکوپ یا شتاب‌سنج) را از عینک بازیابی می‌کند.
  • AudioManager : جریان‌های صوتی، میزان صدا و مسیریابی را روی عینک مدیریت می‌کند.
  • AudioRecord : با استفاده از میکروفون عینک، صدا را ضبط می‌کند.