تقدّم هذه الصفحة عمليات الربط المقترَحة بين ثوابت HAL العامة وثوابت واجهة برمجة التطبيقات. إذا كان الجهاز الذي تم تقييمه لا ينفِّذ ثوابت HAL، عليك تعديل أنماط الحلول الاحتياطية الموضّحة في صفحة تنفيذ الثوابت والعناصر الأساسية لإنشاء نتائج مشابهة. يتمّ الربط باستخدام سمتَين مختلفتَين للنماذج التلقائية:
النموذج المنفصل (بسيط)
- وتعدّ السعة المتغير الرئيسي لهذا النموذج. يمثّل كل عنصر في HAL سعة لمس مختلفة.
- هذا النموذج هو الحد الأدنى من المتطلبات اللازمة لتنفيذ تجربة مستخدم أساسية لللمس.
- تتطلب تجربة المستخدم من خلال اللمس المتقدّمة أجهزة متقدّمة وأحد نماذج اللمس المتقدّمة (النموذج المستمر).
النموذج المستمر (خيار متقدم)
- يُعدّ الملمس والسعة المتغيرَين الرئيسيَين لهذا النموذج. يمثّل كل عنصر
في HAL نسيجًا لمسيًا مختلفًا. يتم التحكّم في شدة كل عنصر
HAL من خلال مُعامل القياس (
S
). - يتطلب هذا الطراز أجهزة متقدّمة. إذا أرادت المصنّعين الأصليّين للأجهزة استخدام تجربة مستخدم متقدمة تتعلّق باللمس مع
VibrationEffect.Composition
(للاستفادة إلى أقصى حد من أحدث واجهات برمجة التطبيقات لللمس)، يُنصح بتنفيذ الأجهزة باستخدام هذا النموذج.
- يُعدّ الملمس والسعة المتغيرَين الرئيسيَين لهذا النموذج. يمثّل كل عنصر
في HAL نسيجًا لمسيًا مختلفًا. يتم التحكّم في شدة كل عنصر
HAL من خلال مُعامل القياس (
نموذج منفصل
ننصح بربط جميع الثوابت العامة المقدَّمة في واجهة برمجة التطبيقات بثوابت HAL المناسبة. لبدء هذه العملية، عليك معرفة عدد الموجات اللمسية التي تتضمّن سعة ترددية منفصلة يمكن للجهاز تحديدها في HAL. يظهر سؤال محدّد مبني على هذا المفهوم على النحو التالي: كم عدد التأثيرات اللمسية بدفعة واحدة التي تتضمّن اختلافات في الشدة يمكن للمستخدم تمييزها في الهاتف؟ تحدِّد إجابة هذا السؤال عملية الربط.
إنّ تحديد الثوابت في HAL هي عملية تعتمد على الأجهزة. على سبيل المثال، قد لا يتوفّر في هاتف الدخولي سوى إمكانات الأجهزة اللازمة لإنشاء موجة haptic واحدة. تُنتج الأجهزة التي تتضمّن مكوّنات أجهزة أكثر تقدّمًا نطاقاً أوسع من مستويات السعة المنفصلة، ويمكنها تحديد أشكال موجات لمسية متعددة في HAL. تأخذ عملية الربط الثابت لواجهة برمجة التطبيقات HAL ثابت HAL (باستخدام كثافة الوسيط كخط أساس)، ثم ترتب التأثيرات الأقوى أو الأضعف من هناك.
الشكل 14: النطاق الثابت لواجهة HAL حسب المطال
عند تحديد عدد ثوابت HAL ذات السعة المنفصلة، حان وقت ربط ثوابت HAL وواجهة برمجة التطبيقات بعدد ثوابت HAL. يمكن أن تقسم عملية الربط هذه ثباتًا واحدًا لواجهة برمجة التطبيقات للدفعات إلى ما يصل إلى ثلاث مجموعات متقطعة من مستويات الشدة. تستند طريقة تقسيم الثوابت في واجهة برمجة التطبيقات إلى مبادئ تجارب المستخدم المتعلّقة بأحداث الإدخال المصاحبة. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تصميم تجربة المستخدم في ما يتعلّق باللمس.
الشكل 15: تعيين ثابت HAL-API: نموذج منفصل
إذا كان جهازك لا يتيح سوى ثابتَين من HAL يتضمّنان سعة ترددية منفصلة،
ننصح بدمج ثابتَي HAL لمستوى السعة المتوسطة والمرتفعة. على سبيل المثال،
يمكن ربط EFFECT_CLICK
وEFFECT_HEAVY_CLICK
بثابت HAL نفسه، وهو ثابت HAL
لمستوى السعة المتوسطة. إذا كان جهازك يتيح استخدام ثابت HAL واحد فقط مع كثافة
متقطعة، ننصحك بدمج المستويات الثلاثة في مستوى واحد.
النموذج المستمر
يمكن تطبيق النموذج المستمر مع قابلية التوسّع في النطاق لتحديد ثوابت HAL. يمكن تطبيق عامل مقياس (S
) على ثوابت HAL (مثل
HAL_H0
وHAL_H1
) لإنشاء HAL المُعدَّل (HAL_H0
x S
). في
هذا الحالة، يتمّ ربط HAL المُعدَّل لتحديد ثوابِت واجهة برمجة التطبيقات (HAL_H0
x S1
= H0S1
= EFFECT_TICK
) كما هو موضّح في الشكل 16. من خلال استخدام قابلية التوسّع في النطاق الزمني للملف الشخصي
المستمر، يمكن للجهاز تخزين عدد صغير من ثوابت HAL التي تتضمن
ملمسًا مميزًا وإضافة اختلافات في النطاق الزمني من خلال تعديل عامل القياس
(S
). يمكن لصنّاع الأجهزة تحديد عدد ثوابتها استنادًا إلى عدد
الملمسات المختلفة التي يريدون تقديمها.
الشكل 16: نطاق ثابت لواجهة HAL حسب النسيج (HAL_H0) ومقياس السعة (S)
الشكل 17: تعيين الثابت في HAL-API: النموذج المستمر
في النموذج المستمر، تمثّل ثوابت HAL المختلفة ملمس مختلفًا لللمس بدلاً من مستويات مختلفة من الشدة، ويمكن أن يضبط عامل القياس (S
) شدة اللمس. ومع ذلك، بما أنّ إدراك الملمس (مثل الحادة) مرتبط بإدراك المدة والمطال، يُنصح بدمج الملمس ومعامل التوسيع (في عملية تصميم ربط HAL-API).
يوضّح الشكل 18 عملية الربط الثابت من خلال زيادة التباين من HAL واحد إلى العديد من ثوابت واجهة برمجة التطبيقات مع إمكانية توسيع نطاق السعة.
الشكل 18: زيادة التباين مع قابلية التوسّع في Amplitude
بالنسبة إلى جميع الثوابت القابلة للتوسيع في واجهة برمجة التطبيقات، مثل PRIMITIVE_TICK
وPRIMITIVE_CLICK
في
VibrationEffect.Composition
،
يعتمد مستوى الطاقة لثوابت واجهة برمجة التطبيقات على المَعلمة float scale
عند
تعريف ثابت واجهة برمجة التطبيقات من خلال addPrimitive(int primitiveID, float scale,
int delay)
. يمكن تصميم PRIMITIVE_TICK
وPRIMITIVE_CLICK
بتمييز
واضح باستخدام ثوابت HAL مختلفة. ننصحك باستخدام هذا الأسلوب إذا
أردت إضافة تنوع إلى الملمس.