تنفيذ تقنية اللمس

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

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

تقدّم هذه الصفحة قائمة تحقّق مفصّلة لإعداد التوافق مع الأجهزة من أجل تحقيق أفضل استخدام لواجهات برمجة التطبيقات الخاصة باللمس في Android.

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

مخطّط بياني لحالات استخدام تقنية اللمس لمطوّري التطبيقات ومصنّعي
الأجهزة

الشكل 1: تبادل المعرفة بين المصنّعين والمطوّرين للأجهزة

قائمة التحقّق من تنفيذ ميزة "اللمس"

  1. تنفيذ الثوابت

    • قائمة الثوابت لتنفيذ اللمس
  2. تنفيذ العناصر الأساسية

    • إرشادات التنفيذ لعناصر تركيب HAL
  3. ربط الثوابت بين HAL وواجهة برمجة التطبيقات

  4. تقييم الجهاز

    • تعليمات حول استهداف التأثيرات اللمسية يمكنك اتّباع هذه التعليمات لإجراء فحص سريع للأجهزة.

سنتناول كل خطوة من هذه الخطوات بالتفصيل أدناه.

الخطوة 1: تنفيذ الثوابت

يمكنك إجراء عمليات التحقّق التالية لمعرفة ما إذا كان جهازك يستوفي الحدّ الأدنى من المتطلبات لتنفيذ ميزة "اللمس":

مخطّط انسيابي لعملية تنفيذ ميزة haptics

الشكل 2: تنفيذ التأثيرات

مخطّط انسيابي لخطوات تنفيذ
العناصر الأساسية

الشكل 3: تنفيذ العناصر الأساسية

تحقَّق من حالة تنفيذ الثوابت التالية لللمس.

الإعدادات الثابتة لللمس المواقع الجغرافية والملخّصات
EFFECT_TICK، EFFECT_CLICK، EFFECT_HEAVY_CLICK، EFFECT_DOUBLE_CLICK VibrationEffect class
لا تتضمّن الثوابت اللمسية في VibrationEffect أي فكرة عن أحداث الإدخال، ولا تحتوي على عناصر واجهة مستخدم. تتضمّن الثوابت مفهوم مستويات الطاقة بدلاً من ذلك، مثل EFFECT_CLICK و EFFECT_HEAVY_CLICK، اللذَين يتم استدعاؤهما من قِبل createPredefined().

يتم تنفيذ الاهتزازات البديلة الموضّحة أدناه على الأجهزة التي لا تصعّد VibrationEffect الثوابت. ننصحك بتعديل هذه الإعدادات لتحسين الأداء على هذه الأجهزة.

  • EFFECT_CLICK

    تم إنشاء اهتزاز شكل الموجة باستخدام VibrationEffect.createWaveform والمخطط الزمني الذي تم ضبطه في frameworks/base/core/res/res/values/config.xml##config_virtualKeyVibePattern.

  • EFFECT_HEAVY_CLICK

    تم إنشاء اهتزاز شكل الموجة باستخدام VibrationEffect.createWaveform والمخطط الزمني الذي تم ضبطه على frameworks/base/core/res/res/values/config.xml##config_longPressVibePattern.

    • EFFECT_DOUBLE_CLICK

    اهتزاز شكل الموجة الذي تم إنشاؤه باستخدام VibrationEffect.createWaveform والموقّتات (0، 30، 100، 30)

  • EFFECT_TICK

    تم إنشاء اهتزاز شكل الموجة باستخدام VibrationEffect.createWaveform والمخطط الزمني الذي تم ضبطه في frameworks/base/core/res/res/values/config.xml##config_clockTickVibePattern.

مخطّط بياني للخطوات اللازمة لاختبار التجاوب العميق

الشكل 4: تنفيذ الثوابت المتعلّقة بالملاحظات

تحقَّق من حالة الثوابت التالية للتعليقات والآراء العامة.

الثوابت الحسّية المواقع الجغرافية والملخّصات
CLOCK_TICK، CONTEXT_CLICK، KEYBOARD_PRESS، KEYBOARD_RELEASE، KEYBOARD_TAP، LONG_PRESS، TEXT_HANDLE_MOVE، VIRTUAL_KEY، VIRTUAL_KEY_RELEASE، CONFIRM، REJECT، GESTURE_START، GESTURE_END فئة HapticFeedbackConstants
تساعد الثوابت اللمسية في HapticFeedbackConstants أحداث الإدخال باستخدام عناصر واجهة مستخدم معيّنة، مثل KEYBOARD_PRESS و KEYBOARD_RELEASE، التي يتمّ استدعاؤها من قِبل performHapticFeedback().

الخطوة 2: تنفيذ العناصر الأساسية

تتميز العناصر الأساسية لللمس في VibrationEffect.Composition بشدة قابلة للتعديل يمكن للمطوّرين استخدامها من خلال addPrimitive(int primitiveId, float scale, int delay). يمكن تقسيم العناصر الأساسية إلى فئتين:

  • العناصر الأساسية القصيرة: عناصر أساسية ذات مدة قصيرة، عادةً أقل من 20 ملي ثانية. وتشمل هذه العناصر CLICK وTICK وLOW_TICK.

  • العناصر الأساسية للصوت المتصاعد: عناصر أساسية ذات سعة وتردد متغيرَين، وتكون مدّتها عادةً أطول من العناصر الأساسية القصيرة. وهي SLOW_RISE QUICK_RISE وQUCK_FALL وTHUD وSPIN.

العناصر الأساسية القصيرة

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

من المقاييس القيّمة لجودة الاهتزازات القصيرة هي نسبة النبض إلى الرنين (PRR)، كما هو موضّح في الشكل 5. يتم تعريف معدل تكرار النبضات على أنّه النسبة بين النبض الرئيسي، الذي يتم تحديده حسب الإشارة داخل نافذة المدة التي ينخفض فيها القمم إلى 10% من القمم القصوى، ونبض الحلقة، الذي يتم تحديده حسب الإشارة التي ينخفض فيها القمم من 10% من القمم القصوى إلى أقل من 1% من القمم القصوى. لمزيد من المعلومات عن معدّل الاستجابة للطلبات، اطّلِع على مقالة تحليل شكل الموجة، ولمزيد من المعلومات عن تحليل النتائج ومقارنتها، اطّلِع على مقالة مقارنة النتائج باستخدام خريطة الأداء.

نسبة النبض إلى الخاتم

الشكل 5: تعريف نسبة النبض إلى الرنين

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

عنصر أساسي للنقر

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

استخدِم وضع "زيادة سرعة المحرك" في البداية ووضع "التفرامل النشطة" في النهاية، إذا كانا متاحَين، لتحقيق وقت قصير لزيادة سرعة المحرك وانخفاضها. في بعض المحرّكات، يمكن أن يؤدي استخدام موجة مربعة بدلاً من موجة جيبية إلى تحقيق تسارع أسرع. يعرض الشكل 6 مثالاً على ملف شخصي لتسريع الإخراج لمكوّن النقرة الأساسي:

انقر على ملف تحسين الأداء الأساسي للإخراج.

الشكل 6: مثال على ملفّ تعريف تسريع الإخراج لمكوّن النقر الأساسي

المَعلمة الإرشاد
المدة

الاستهداف: 12 ملي ثانية

الحدّ الأقصى: أقل من 30 ملي ثانية

تسريع الذروة في الإخراج

الهدف: شبكة الجيل الثاني

الحد الأقصى: أكثر من 1 جيجا بايت

التردد تقريبًا عند التردد الرنان

عنصر العلامة (علامة خفيفة)

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

وضع علامة في ملف تعريف تسريع الإخراج الأساسي

الشكل 7: مثال على الملف الشخصي لتسريع الإخراج لعنصر علامة التبويب

المَعلمة الإرشاد
المدة

الاستهداف: 5 ملي ثانية

الحدّ الأقصى: أقل من 20 ملي ثانية

تسريع الذروة في الإخراج

الاستهداف: نصف CLICK، 1 جيجابايت

الحدّ الأقصى: بين 0.5 و1 غيغابايت

التردد

الاستهداف: ضعف تردد الرنين

الحد الأقصى: أقل من 500 هرتز

عنصر علامة منخفضة

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

الملف الشخصي لتسريع الإخراج الأساسي للعلامات المنخفضة

الشكل 8: مثال على الملف الشخصي لتسريع الإخراج لعنصر أساسي منخفض الدقة

المَعلمة الإرشاد
المدة

الاستهداف: 12 ملي ثانية

الحدّ الأقصى: أقل من 30 ملي ثانية

تسريع الذروة في الإخراج

الاستهداف: ربع TICK، 0.25 غ

الحدّ الأقصى: بين 0.2 و0.5 غيغابايت

التردد

الاستهداف: ‎2/3 من تردد الرنين

الحدّ الأقصى: أقل من 100 هرتز

العناصر الأساسية في Chirp

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

العنصر الأساسي للارتفاع البطيء

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

ملفات تعريف تسارع الإدخال والإخراج لعنصر الارتفاع البطيء

الشكل 9: مَعلمات الإدخال ومثال على الملف الشخصي لتسريع الإخراج لملف بدء الصعق البطيء

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

المَعلمة الإرشاد
المدة

الاستهداف: 500 ملي ثانية

الحدّ المسموح به: 20 ملي ثانية

تسريع الذروة في الإخراج

الاستهداف: 0.5 غ

الحدّ الأقصى: بين 0.5 و1 غيغابايت

التردد

الاستهداف: من 1/2 إلى 2/3 من التردد الرنان

البديل: 1/2 إلى التردد الرنان

العنصر الأساسي للارتفاع السريع

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

ملفات تعريف تسارع الإدخال والإخراج لعنصر الارتفاع السريع

الشكل 10: مَعلمات الإدخال ومثال على الملف الشخصي لتسريع الإخراج لعنصر الارتفاع السريع

المَعلمة الإرشاد
المدة

الهدف: 150 ملي ثانية

الحدّ المسموح به: 20 ملي ثانية

تسريع الذروة في الإخراج

الهدف: كما هو الحال في SLOW_RISE

الحدّ الأقصى: كما هو الحال في SLOW_RISE

التردد

الهدف: كما هو الحال في SLOW_RISE

البديل: السعر نفسه في SLOW_RISE

العنصر الأساسي للسقوط السريع

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

ملفات تعريف تسارع الإدخال والإخراج لعنصر السقوط السريع

الشكل 11: مَعلمات الإدخال ومثال على الملف الشخصي لتسريع الإخراج لعنصر السقوط السريع

المَعلمة الإرشاد
المدة

الاستهداف: 100 ملي ثانية

الحدّ المسموح به: 20 ملي ثانية

تسريع الذروة في الإخراج

الهدف: 1 جيجابايت

الحدّ الأقصى: بين 0.5 و2 غيغابايت

التردد

الاستهداف: من ضعف إلى ضعف واحد من معدّل الرنين

العنصر الأساسي للصوت العالي

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

مَعلمات الإدخال وملفّ تعريف تسارع الإخراج لمكوّن thud الأساسي

الشكل 12: مَعلمات الإدخال ومثال على الملف الشخصي لتسريع الإخراج لعنصر thud

إذا كان استجابة المحرك للتردد محدودة، يمكن استخدام بديلٍ في التنفيذ، وهو البدء بإشارة محرك ذات شدة كاملة عند تردد الрезонанс والانخفاض إلى أدنى تردد ممكن يمكن رصده. قد يتطلّب هذا النهج زيادةً في شدة إشارة الدفع عند التردد المنخفض لكي يشعر المستخدم بالاهتزاز.

المَعلمة الإرشاد
المدة

الاستهداف: 300 ملي ثانية

الحدّ المسموح به: 20 ملي ثانية

تسريع الذروة في الإخراج

الاستهداف: 0.25 غ

الحدّ الأقصى: بين 0.2 و0.5 غيغابايت

التردد

الاستهداف: من 1/2 إلى 1/3 من التردد الرنان

البديل: من مرة إلى نصف التردد الرنان

العنصر الأساسي للدوران

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

ننصحك باستدعاء العنصر الأساسي للدوران مرتين متتاليتين أو ثلاث مرات في التراكيب، لتحقيق إحساس بالدوران وعدم الاستقرار.

إذا كان استجابة المحرك للتردد محدودة، يمكن استخدام بديل هو إجراء مسح سريع للإشارة الجيبية من 1/2x إلى 1x للتردد الرنان والعكس. يمنح صدى المحرّك تلقائيًا إشارة لهجة في المنتصف.

مَعلمات الإدخال وملفّ تعريف تسارع الإخراج لمكوّن الدوران الأساسي

الشكل 13: مَعلمات الإدخال ومثال على الملف الشخصي لتسريع الإخراج لمكوّن الدوران الأساسي

المَعلمة الإرشاد
المدة

الهدف: 150 ملي ثانية

الحدّ المسموح به: 20 ملي ثانية

تسريع الذروة في الإخراج

الاستهداف: 0.5 غ

الحدّ الأقصى: بين 0.25 و0.75 غ

التردد

الاستهداف: من 2/3 إلى 1/3، ثم العودة إلى 1/2 من تردد الرنين

البديل: من 2/3 إلى مرة واحدة، ثم العودة إلى 1/2 من التردد الرنان

الخطوة 3: ربط الثوابت بين HAL وواجهة برمجة التطبيقات

تقدّم الخطوة 3 عمليات الربط المقترَحة بين ثوابت HAL العامة وثوابت واجهة برمجة التطبيقات. إذا كان الجهاز الذي تم تقييمه في الخطوة 1 لا ينفِّذ ثوابت HAL ، استخدِم الخطوة 3 لتعديل أنماط الحلول الاحتياطية الموضّحة في الخطوة 1 من أجل إنشاء نتائج مشابهة. يتم الربط باستخدام سمتَين أساسيتَين مختلفتَين:

  • النموذج المنفصل (بسيط)

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

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

نموذج منفصل

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

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

مخطّط بياني لنطاق HAL الثابت وamplitudes
الملاحظات

الشكل 14: النطاق الثابت لواجهة HAL حسب المطال

عند تحديد عدد ثوابت HAL ذات السعة المنفصلة، حان وقت ربط ثوابت HAL وواجهة برمجة التطبيقات بعدد ثوابت HAL. يمكن أن تؤدي عملية الربط هذه إلى تقسيم ثابت واحد لواجهة برمجة التطبيقات للدفعات إلى ما يصل إلى ثلاث مجموعات متقطعة من مستويات الشدة. تستند طريقة تقسيم الثوابت في واجهة برمجة التطبيقات إلى مبادئ تجارب المستخدم المتعلّقة بأحداث الإدخال المصاحبة. لمزيد من المعلومات، يُرجى الاطّلاع على تصميم تجربة المستخدم اللمس.

نموذج منفصل لربط CONSTANT
HAL-API

الشكل 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). يمكن لصنّاع الأجهزة تحديد عدد الثوابت في HAL استنادًا إلى عدد الملمسات المختلفة التي يريدون تقديمها.

نطاق ثابت HAL حسب الملمس
والسعة

الشكل 16: نطاق ثابت لواجهة HAL حسب النسيج (HAL_H0) ومقياس السعة (S)

نموذج مستمر لربط CONSTANT
في HAL-API

الشكل 17: تعيين الثابت في HAL-API: النموذج المستمر

في النموذج المستمر، تمثّل ثوابت HAL المختلفة ملمس مختلفًا لللمس بدلاً من مستويات مختلفة من الشدة، ويمكن أن يضبط عامل القياس (S) شدة اللمس. ومع ذلك، بما أنّ إدراك الملمس (مثل الحادة) مرتبط بإدراك المدة والمطال، يُنصح بدمج الملمس ومعامل المقياس (في عملية تصميم ربط HAL-API).

يوضّح الشكل 18 عملية الربط الثابت من خلال زيادة التباين من HAL واحد إلى العديد من ثوابت واجهة برمجة التطبيقات مع إمكانية توسيع نطاق السعة.

زيادة التنوع
1

زيادة التنوع
2

الشكل 18: زيادة التباين باستخدام قابلية التوسّع في Amplitude

بالنسبة إلى جميع الثوابت القابلة للتوسيع في واجهة برمجة التطبيقات، مثل PRIMITIVE_TICK وPRIMITIVE_CLICK في VibrationEffect.Composition، يعتمد مستوى الطاقة لثوابت واجهة برمجة التطبيقات على المَعلمة float scale عند تعريف ثابت واجهة برمجة التطبيقات من خلال addPrimitive(int primitiveID, float scale, int delay). يمكن تصميم PRIMITIVE_TICK وPRIMITIVE_CLICK بتمييز واضح باستخدام ثوابت HAL مختلفة. ننصحك باستخدام هذا الأسلوب إذا أردت إضافة تنوع إلى الملمس.

الخطوة 4: تقييم الجهاز

يتضمن تقييم الأجهزة تحديد ثلاثة تأثيرات لمسية، تم تصنيفها على أنّها التأثيرات 1 و2و3 لهذا التقييم المحدّد.

التأثير 1: ثوابت لمسية قصيرة محدّدة مسبقًا

الثابت VibrationEffect.EFFECT_CLICK هو التأثير الأساسي أو القاسم المشترك في تعيين HAL-API المقدَّم في الخطوة 2. ويتم ربطه بالتأثير الأكثر استخدامًا، وهو HapticFeedbackConstants.KEYBOARD_PRESS. يساعد تقييم هذا التأثير في تحديد مدى جاهزية جهازك المستهدَف لإحساسات ملفتة.

التأثير 2: تأثير لمسي مخصّص قصير

الثابت VibrationEffect.createOneShot(20,255) مخصّص للتأثيرات اللمسية المخصّصة. بالنسبة إلى النبضات المخصّصة القصيرة والفردية، يُنصح باستخدام 20 ملي ثانية كحدّ أقصى لتحديد المدة. لا يُنصح باستخدام نبضة واحدة تزيد مدتها عن 20 ملي ثانية لأنّها تُعتبر اهتزازًا مزعجاً.

شكل موجي لتأثير اهتزاز مخصّص قصير

الشكل 19: تأثير لمسي مخصّص قصير

التأثير 3: تأثير لمسي مخصّص طويل مع اختلاف في الشدة

يُستخدَم الثابت VibrationEffect.createWaveform(timings[], amplitudes[], int repeat) للتأثيرات المخصّصة الطويلة التي تتضمّن اختلافًا في الشدة. إنّ القدرة على توليد نطاقات متفاوتة للتأثيرات الحسية المخصّصة هي أحد المؤشرات التي تُستخدَم لتقييم إمكانات الجهاز في ما يتعلّق بتأثيرات الحسية الغنية. timings [] وamplitudes [] المُقترَحان هو {500, 500} و{128, 255}، على التوالي، ما يعرض مؤشرًا متزايدًا للسعة من% 50 إلى %100، بمعدل أخذ عينات يبلغ 500 ملي ثانية.

شكل موجي للتأثيرات اللمسية مع اختلاف في amplitude

الشكل 20: تأثير لمسي مخصّص طويل مع اختلاف في الشدة

للتحقّق من إمكانات الجهاز للتحكّم في الشدة للتأثير 3، استخدِم Vibrator.hasAmplitudeControl() الطريقة. يجب أن تكون النتيجة true لتنفيذ VibrationEffect.createWaveform بسعة متغيرة على النحو المطلوب.

مخطّط انسيابي لتقييم التأثيرات اللمسية الذاتية

الشكل 21: تقييم المستخدِم للتأثيرات الحسية 1 و2 و3

إجراء تقييم ذاتي

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

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

إجراء تقييم متقدم

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