التحقّق من توفّر الجهاز في وقت التشغيل للنظارات المزودة بالذكاء الاصطناعي

أثناء استخدام نظارات الذكاء الاصطناعي، قد ينقطع الاتصال بينها وبين الجهاز المضيف (مثل هاتف المستخدم)، أو قد تصبح النظارات غير متاحة مؤقتًا إذا خلعها المستخدم. ولمراعاة هذه الأنواع من التغييرات في مدى توفّر الجهاز، يمكن لتطبيقك استخدام واجهة برمجة التطبيقات XR Device Availability API التي تجمع إشارات مدى توفّر الجهاز في قيم Lifecycle.State العادية لنظام التشغيل Android. يمكنك استخدام واجهة برمجة التطبيقات هذه للمساعدة في إدارة توجيه الصوت وتفعيل الكلمة المفتاح ومعرفة الوقت المتوقّع لتلقّي بيانات أدخلها المستخدم استنادًا إلى وقت توفّر نظارات بالذكاء الاصطناعي.

فهم حالات مراحل النشاط

يوضّح الجدول التالي كيفية ربط إشارات توفّر الجهاز بقيم 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 إلا بعد التحقّق من الاتصال، وتأكَّد من تمرير هذا السياق إلى مثيل XrDevice.
  • التعامل مع إبطال السياق: يتم إنشاء deviceId جديد في كل مرة يتصل فيها جهاز معروض. عندما تصل الحالة إلى DESTROYED، يصبح ProjectedContext الحالي غير صالح. توقَّف عن استخدامه فورًا وانتظِر اتصالاً جديدًا.
  • تحسين البطارية والموارد: التعامل بسلاسة مع وظائف التطبيق استنادًا إلى حالة دورة الحياة للحفاظ على موارد النظام وتقليل استهلاك البطارية على سبيل المثال، عليك إيقاف الموارد الخاصة بالنظارات، مثل بث بيانات الكاميرا، عند الانتقال من الحالة STARTED إلى الحالة CREATED. تشير الحالة CREATED إلى أنّ الجهاز لم يعُد موضوعًا على المعصم، لذا من الضروري إيقاف هذه العمليات لمنع استنزاف البطارية بلا داعٍ وتعزيز خصوصية المستخدم.