تتوفّر أنواع مختلفة من نظارات الذكاء الاصطناعي بقدرات مختلفة. على سبيل المثال، في حين أنّ جميع نظارات الذكاء الاصطناعي توفّر تجارب صوتية من خلال الصوت، تتضمّن بعض نظارات الذكاء الاصطناعي أيضًا شاشة يمكن لتطبيقك عرض واجهات مستخدم تم إنشاؤها باستخدام Jetpack Compose Glimmer عليها.
لإنشاء تجربة مستخدم سلسة على مجموعة من أجهزة نظارات الذكاء الاصطناعي، عليك التخطيط Activity للنظارات للتحقّق من إمكانات الأجهزة المختلفة.
تسهّل هذه الطريقة عملية التطوير من خلال السماح لك بإنشاء نشاط واحد يتكيّف سلوكه، بدلاً من أنشطة متعدّدة تستهدف أجهزة معيّنة.
فهم دورة حياة الأنشطة المتوقّعة
لا يتم تشغيل النشاط الذي تنشئه لنظارات الذكاء الاصطناعي مباشرةً على الجهاز، ولكن يتم عرضه على الجهاز من جهاز مضيف (مثل هاتف المستخدم). الأنشطة المخصّصة التي تنشئها لهذا الغرض هي الأنشطة المتوقّعة. تستند دورة حياة الأنشطة المعروضة على الشاشة إلى دورة حياة الأنشطة العادية، ولكنها تتضمّن أيضًا العديد من الاختلافات الرئيسية التي تتيح إمكانات أنواع مختلفة من نظارات الذكاء الاصطناعي.
في ما يلي تفصيل للأحداث الرئيسية، مع إشارات إلى التفاعلات الخاصة بالأنشطة التي من المتوقّع أن تعرضها نظارات الذكاء الاصطناعي:
onCreate()- يتم استدعاؤه عند إنشاء النشاط المتوقّع.
- يمكنك هنا تهيئة واجهة مستخدم Glimmer في Jetpack Compose ومكوّنات أخرى لتطبيقك.
onStart()- يتم استدعاء هذه الطريقة عند بدء النشاط المعروض ويكون المستخدم على دراية بالتطبيق.
onResume()- يتم استدعاؤه عندما يستعيد النشاط المعروض التركيز. عندما يكون النشاط في المقدّمة، يمكن التفاعل معه ويمكنه تلقّي إدخالات من لوحة اللمس أو الأزرار.
- يتم استدعاء هذا الإجراء عند إعادة ارتداء النظارات (donned) بعد خلعها (doffed).
onPause()- يتم استدعاء هذا الإجراء عندما يفقد النشاط المعروض التركيز، ولكن يظل المستخدم على دراية بتطبيقك. وعندما يكون النشاط خارج نطاق التركيز، لا يمكن التفاعل معه ويتوقف عن تلقّي الإدخال.
onStop()- يتم استدعاء هذه الطريقة عندما يرى النظام أنّ المستخدم لم يعُد على دراية بتطبيقك.
- يتم استدعاء هذه الطريقة عند إزالة النظارات من الرأس (خلعها).
onDestroy()- يتم استدعاؤه عندما يكون النشاط المعروض على وشك إيقافه. عند استدعاء هذا الإجراء، يحرر النظام جميع الموارد المرتبطة بالنشاط.
فهم كيفية تأثير حالة العرض في دورة حياة النشاط المتوقّعة
في Activity عادي، تتغيّر حالة دورة الحياة عند إيقاف شاشة الجهاز، وعادةً ما تنتقل إلى onPause() أو onStop(). في المقابل، لا تتغيّر دورة حياة النشاط المعروض عندما يتم تشغيل شاشة النظارات الذكية التي تعمل بالذكاء الاصطناعي أو إيقافها. ويعني هذا السلوك أنّ النشاط المعروض يستمر في العمل في الحالة "بدأ" أو "تم استئنافه" حتى عندما تكون الشاشة مطفأة، ما يتيح استمرار تجارب الصوت في تطبيقك بدون انقطاع.
تتصرّف تغييرات حالة النشاط الأخرى التي يتم تشغيلها من خلال أحداث مختلفة للنظام والمستخدمين بالطريقة المعتادة.
فهم تأثير مستوى وعي المستخدم في النشاط المتوقّع
يمكن للمستخدم أن يكون على دراية بنشاطك المتوقّع حتى إذا لم يكن مرئيًا. تشير إمكانية الإدراك إلى جميع الطرق التي يمكن للمستخدم من خلالها استشعار تجارب تطبيقك والتفاعل معها، بما في ذلك ما يلي:
- الاستماع إلى الصوت أو التعليقات الصوتية أو إشارات صوتية أخرى
- إجراءات التطبيق التي تؤدي إلى تشغيل مؤشر LED للمستخدم، مثل مؤشر الخصوصية إذا كان تطبيقك يصل إلى الكاميرا أو الميكروفون
في هذه الحالات، يكون المستخدم على عِلم بأنّ النظارات الذكية التي تعمل بالذكاء الاصطناعي نشطة وتستجيب، حتى إذا لم يكن ينظر إلى شاشة:
- تعني حالة
onStart()للأنشطة المتوقّعة أنّ النشاط نشط. - تعني الحالة
onResume()أنّ النشاط تفاعلي ويمكنه تلقّي إدخال من لوحة اللمس أو أنّه يتلقّى عملية إرسال الإدخال الأساسي.
وطالما أنّ المستخدم على دراية بتطبيقك، سيظل نشاطك نشطًا ويعمل في المقدّمة. إذا لم يرصد النظام أي إشارات تدل على الوعي لفترة قصيرة من الوقت، سيزيل النشاط من المقدّمة وسيؤدي في النهاية إلى تشغيل onStop().
فهم الأنشطة المتوقّعة والسياقات المتوقّعة
تُعتبَر نظارات الذكاء الاصطناعي جهازًا متصلاً يوسّع إمكانات هاتف المستخدم. السياق المُسقَط هو Context مدرِك للجهاز يتيح للتطبيقات التفاعل مع الأجهزة على جهاز نظارات متصل، مثل أجهزة الاستشعار أو الكاميرا أو الميكروفون، بدلاً من أجهزة الهاتف. أثناء تطوير تجارب لنظارات الذكاء الاصطناعي، يجب أن يستخدم تطبيقك سياقًا معروضًا للوصول إلى أجهزة النظارات.
يمكن منح سياق متوقّع لتطبيقك تلقائيًا استنادًا إلى سياق نشاط الاتصال:
بالنسبة إلى الأنشطة المعروضة: إذا كان رمز تطبيقك يعمل من داخل نشاطك المعروض، يكون سياق النشاط الخاص به هو سياق معروض. في هذا السيناريو، يمكن للمكالمات التي يتم إجراؤها ضمن هذا النشاط الوصول إلى أجهزة النظارات.
بالنسبة إلى تطبيقات أو خدمات الهاتف: إذا كان جزء من تطبيقك خارج نطاق النشاط المتوقّع (مثل نشاط الهاتف أو إحدى الخدمات) يحتاج إلى الوصول إلى أجهزة النظارات، يجب أن يحصل صراحةً على سياق متوقّع. لإجراء ذلك، استخدِم طريقة
createProjectedDeviceContext().
لمزيد من المعلومات، يُرجى الاطّلاع على استخدام سياق معروض للوصول إلى أجهزة نظارات الذكاء الاصطناعي.
التعرّف على واجهات برمجة التطبيقات التي تراعي الأجهزة
تغيّر بعض واجهات برمجة التطبيقات العادية في Android الأجهزة التي يمكنها الوصول إلى أجزاء الجهاز، وذلك حسب Context للنشاط الذي يتم استدعاؤه. عندما تتلقّى واجهات برمجة التطبيقات هذه سياقًا معروضًا، فإنّها تصل إلى أجهزة نظارات الذكاء الاصطناعي بدلاً من أجهزة الهاتف المضيف:
CameraManager: للوصول إلى الكاميرا على النظاراتSensorManager: لاسترداد بيانات أجهزة الاستشعار (مثل بيانات الجيروسكوب أو مقياس التسارع) من النظاراتAudioManager: يدير تدفقات الصوت ومستوى الصوت والتوجيه على النظارات.AudioRecord: لالتقاط الصوت باستخدام ميكروفون النظارات