التخطيط لتوفير أنواع مختلفة من النظارات الصوتية والنظارات المزودة بشاشة عرض

أجهزة XR المشمولة
تساعدك هذه الإرشادات في إنشاء تجارب لهذه الأنواع من أجهزة XR.
نظارات بشاشة عرض
وميزات صوتية

تختلف إمكانات النظارات الصوتية والنظارات بشاشة عرض باختلاف أنواعها. على سبيل المثال، في حين أنّ جميع النظارات الصوتية والنظارات المزودة بشاشة توفّر تجارب صوتية من خلال الصوت، فإنّ النظارات المزودة بشاشة فقط تحتوي على شاشة يمكن لتطبيقك من خلالها عرض واجهات مستخدم تم إنشاؤها باستخدام Jetpack Compose Glimmer.

لإنشاء تجربة مستخدم سلسة على مجموعة من الأجهزة، خطِّط لـ Activity للنظارات من أجل التحقّق من إمكانات الأجهزة المختلفة. يُبسِّط هذا النهج عملية التطوير من خلال السماح لك بإنشاء نشاط واحد يتكيّف سلوكه مع الأجهزة المختلفة، بدلاً من إنشاء أنشطة متعددة تستهدف أجهزة معيّنة.

فهم مراحل النشاط المتوقّعة

لا يتم تشغيل النشاط الذي تنشئه للنظارات الصوتية والنظارات بشاشة عرض مباشرةً على الجهاز، بل يتم عرضه على الجهاز من جهاز مضيف (مثل هاتف المستخدم). الأنشطة المخصّصة التي تنشئها لهذا الغرض هي الأنشطة المتوقّعة. تعتمد مراحل النشاط المعروض على مراحل النشاط العادية، ولكنها تتضمّن أيضًا عدة اختلافات رئيسية تتيح إمكانات مختلفة لأنواع النظارات الصوتية والنظارات بشاشة عرض.

الشكل 1. الأحداث الرئيسية في مراحل النشاط المتوقّعة

في ما يلي تفصيل للأحداث الرئيسية، مع وسائل شرح للتفاعلات الخاصة بالأنشطة التي يتم عرضها على النظارات الصوتية والنظارات بشاشة عرض:

  • onCreate()
    • يتم استدعاؤها عند إنشاء النشاط المتوقّع.
    • يمكنك هنا إعداد واجهة مستخدم Glimmer في Jetpack Compose والمكونات الأخرى في تطبيقك.
  • onStart()
    • يتم استدعاء هذه الدالة عند بدء النشاط المعروض على الشاشة ويكون المستخدم على دراية بالتطبيق.
  • onResume()
    • يتم استدعاء هذه الدالة عندما يستعيد النشاط المعروض التركيز. عندما يكون النشاط في المقدّمة، يكون تفاعليًا ويمكنه استخدام إدخال لوحة اللمس أو الأزرار.
    • يتم استدعاء هذه الدالة عند ارتداء النظارات مرة أخرى، بعد أن تم خلعها سابقًا من الرأس.
  • onPause()
    • يتم استدعاء هذه الطريقة عندما يفقد النشاط المعروض التركيز، ولكن يظل المستخدم على دراية بتطبيقك. عندما يكون النشاط خارج التركيز، لا يمكن التفاعل معه ويتوقف عن استهلاك الإدخال.
  • onStop()
    • يتم استدعاء هذه الطريقة عندما يرى النظام أنّ المستخدم لم يعُد على دراية بتطبيقك.
    • يتم استدعاؤها عند خلع النظارة من الرأس.
  • onDestroy()
    • يتم استدعاء هذه الطريقة عندما يكون النشاط المعروض على وشك الإيقاف. عند استدعاء هذه الطريقة، يحرر النظام جميع الموارد المرتبطة بالنشاط.

فهم مدى تأثير حالة العرض في مراحل النشاط المتوقعة

في Activity العادي، تتغيّر حالة مراحل النشاط عند إيقاف شاشة الجهاز، وعادةً ما تنتقل إلى onPause() أو onStop(). في المقابل، لا تتغيّر مراحل النشاط المعروض عندما يتم تشغيل شاشة النظارة أو إيقافها، ما يعني أنّ النشاط المعروض يستمر في العمل في الحالة "بدأ" أو "تم الاستئناف" حتى عندما تكون الشاشة مطفأة، ما يتيح استمرار تجارب الصوت في تطبيقك بدون انقطاع.

أما تغييرات حالة النشاط الأخرى التي يتم تشغيلها من خلال أحداث النظام والمستخدم المختلفة، فتسلك المسار المعتاد.

فهم كيف يؤثر وعي المستخدمين في نشاطك المتوقّع

يمكن للمستخدم أن يكون على دراية بنشاطك المعروض حتى إذا لم يكن مرئيًا. يشير مصطلح الوعي إلى جميع الطرق التي يمكن للمستخدم من خلالها استشعار تجارب تطبيقك والتفاعل معها، بما في ذلك ما يلي:

  • الاستماع إلى الصوت أو الملاحظات الصوتية أو الإشارات الصوتية الأخرى
  • إجراءات التطبيق التي تؤدي إلى تشغيل مؤشر LED موجّه للمستخدمين، مثل مؤشر الخصوصية إذا كان تطبيقك يصل إلى الكاميرا أو الميكروفون.

في هذه الحالات، يدرك المستخدم أنّ نظاراته الصوتية أو نظاراته بشاشة عرض نشطة وتستجيب، حتى لو لم يكن ينظر إلى الشاشة:

  • تشير الحالة onStart() للأنشطة المتوقّعة إلى أنّ النشاط نشط.
  • تشير الحالة onResume() إلى أنّ النشاط تفاعلي ويمكنه تلقّي إدخال من لوحة اللمس أو يتلقّى إرسال الإدخال الأساسي.

طالما أنّ المستخدم على عِلم بتطبيقك، سيظل نشاطك نشطًا وفي المقدّمة. إذا لم يرصد النظام أي إشارات على الوعي لفترة قصيرة، يزيل النظام النشاط من المقدّمة ويشغّل في النهاية onStop().

فهم الأنشطة المتوقّعة والسياقات المتوقّعة

يتم التعامل مع النظارات الصوتية والنظارات بشاشة عرض كأجهزة متصلة توسّع إمكانات هاتف المستخدم. السياق المُسقَط هو Context متوافق مع الأجهزة يتيح للتطبيقات التفاعل مع الأجهزة على نظارات متصلة، مثل أدوات الاستشعار أو الكاميرا، بدلاً من أجهزة الهاتف. عند تطوير تجارب للنظارات الصوتية والنظارات المزوّدة بشاشة، يجب أن يستخدم تطبيقك سياقًا معروضًا للوصول إلى أجهزة النظارات.

يمكن منح سياق متوقّع لتطبيقك تلقائيًا استنادًا إلى سياق نشاط الاتصال:

  • بالنسبة إلى الأنشطة المعروضة: إذا كان رمز تطبيقك يعمل من داخل النشاط المعروض، فإنّ سياق النشاط الخاص به هو سياق معروض. في هذا السيناريو، يمكن للمكالمات التي يتم إجراؤها ضمن هذا النشاط الوصول إلى أجهزة النظارات.

  • بالنسبة إلى تطبيقات الهاتف أو الخدمات: إذا كان جزء من تطبيقك خارج نشاطك المتوقع (مثل نشاط الهاتف أو الخدمة) يحتاج إلى الوصول إلى أجهزة النظارة، فيجب أن يحصل صراحةً على سياق متوقع. لإجراء ذلك، استخدِم الطريقة createProjectedDeviceContext().

لمزيد من المعلومات، يُرجى الاطّلاع على مقالة استخدام سياق معروض للوصول إلى الأجهزة على النظارات الصوتية والنظارات بشاشة عرض.

فهم واجهات برمجة التطبيقات التي تراعي الجهاز

تغيّر بعض واجهات برمجة التطبيقات العادية في Android أجهزة الجهاز التي تصل إليها اعتمادًا على Context لنشاط الاتصال. عندما تتلقّى واجهات برمجة التطبيقات هذه سياقًا معروضًا، فإنّها تصل إلى أجهزة النظارات بدلاً من الأجهزة على الهاتف المضيف:

  • CameraManager: للوصول إلى الكاميرا في النظارات
  • SensorManager: يسترد بيانات جهاز الاستشعار (مثل بيانات الجيروسكوب أو مقياس التسارع) من النظارات.
  • ‫AudioManager: لإدارة عمليات البث الصوتي ومستوى الصوت والتوجيه على النظارة