مجسات

رمز HAL لمستشعرات Android

تمنح مستشعرات Android التطبيقات الوصول إلى المستشعرات المادية الأساسية للجهاز المحمول. إنها أجهزة افتراضية توفر البيانات تحددها sensors.h ، طبقة تجريد أجهزة المستشعر (HAL).

ما هي مستشعرات Android؟

أجهزة استشعار Android هي أجهزة افتراضية توفر البيانات الواردة من مجموعة من المستشعرات المادية: مقاييس التسارع والجيروسكوبات ومقاييس المغناطيسية والبارومتر والرطوبة والضغط والضوء والقرب ومستشعرات معدل ضربات القلب

لا يتم تضمين الكاميرا ومستشعر بصمات الأصابع والميكروفون وشاشة اللمس في قائمة الأجهزة المادية التي توفر البيانات. هذه الأجهزة لديها آلية الإبلاغ الخاصة بها ؛ الفصل تعسفي ، ولكن بشكل عام ، توفر مستشعرات Android بيانات نطاق ترددي أقل. على سبيل المثال ، "قنوات 100 هرتز × 3" لمقياس التسارع مقابل "قنوات 25 هرتز × 8 ميجابكسل × 3" للكاميرا أو "قناة 44 كيلو هرتز × 1" للميكروفون.

لا يحدد Android كيفية توصيل المستشعرات المادية المختلفة بالنظام على الرقاقة (SoC).

  • في كثير من الأحيان ، يتم توصيل شرائح المستشعر بـ SoC من خلال محور مستشعر ، مما يسمح ببعض مراقبة ومعالجة البيانات منخفضة الطاقة.
  • في كثير من الأحيان ، يتم استخدام الدائرة المتكاملة (I2C) أو الواجهة الطرفية التسلسلية (SPI) كآلية نقل.
  • لتقليل استهلاك الطاقة ، تكون بعض البنى هرمية ، مع إجراء بعض المعالجة البسيطة في الدائرة المتكاملة الخاصة بالتطبيق (ASIC - مثل اكتشاف الحركة على شريحة مقياس التسارع) ، ويتم عمل المزيد في متحكم دقيق (مثل اكتشاف الخطوة في مركز استشعار ).
  • الأمر متروك لجهة تصنيع الجهاز لاختيار بنية قائمة على خصائص الدقة والقوة والسعر وحجم الحزمة. انظر مكدس الاستشعار لمزيد من المعلومات.
  • تعد قدرات التجميع اعتبارًا مهمًا لتحسين الطاقة. انظر التجميع لمزيد من المعلومات.

يحتوي كل مستشعر Android على "نوع" يمثل سلوك المستشعر والبيانات التي يوفرها.

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

توفر مستشعرات Android البيانات كسلسلة من أحداث المستشعرات.

يحتوي كل حدث على:

  • مقبض لجهاز الاستشعار الذي أنشأه
  • الطابع الزمني الذي تم فيه اكتشاف الحدث أو قياسه ، بناءً على SystemClock.elapsedRealtimeNanos()
  • وبعض البيانات

يعتمد تفسير البيانات المبلغ عنها على نوع المستشعر. راجع تعريفات نوع المستشعر للحصول على تفاصيل حول البيانات التي يتم الإبلاغ عنها لكل نوع من أنواع أجهزة الاستشعار.

الوثائق الموجودة

تستهدف المطورين

تستهدف الشركات المصنعة