![رمز أجهزة استشعار Android HAL](https://source.android.com/static/docs/core/interaction/sensors/images/ape_fwk_hal_sensors.png?authuser=0000&hl=ar)
تتيح مستشعرات Android للتطبيقات إمكانية الوصول إلى المستشعرات المادية الأساسية للجهاز المحمول. إنها أجهزة افتراضية توفر البيانات يتم تحديدها بواسطة أجهزة الاستشعار ، وطبقة تجريد أجهزة الاستشعار (HAL).
ما هي أجهزة استشعار أندرويد؟
أجهزة استشعار 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()
- وبعض البيانات
يعتمد تفسير البيانات المبلغ عنها على نوع المستشعر. راجع تعريفات نوع المستشعر للحصول على تفاصيل حول البيانات التي يتم الإبلاغ عنها لكل نوع من أنواع المستشعرات.
الوثائق الموجودة
تستهدف المطورين
- ملخص
- مرجع SDK
- Stack Overflow والمواقع التعليمية
- نظرًا لعدم وجود وثائق أجهزة الاستشعار في بعض الأحيان، لجأ المطورون إلى مواقع الأسئلة والأجوبة مثل Stack Overflow للعثور على الإجابات.
- توجد أيضًا بعض مواقع الويب التعليمية، ولكنها لا تغطي أحدث الميزات مثل التجميع والحركة المهمة ومتجهات تدوير اللعبة.
- الإجابات الموجودة هنا ليست صحيحة دائمًا، وتوضح المواضع التي تحتاج إلى مزيد من الوثائق.
تستهدف الشركات المصنعة
- ملخص
- صفحة المستشعرات هذه والصفحات الفرعية التابعة لها.
- طبقة تجريد الأجهزة (HAL)
- /platform/hardware/libhardware/+/main/include/hardware/sensors.h
- يُعرف أيضًا باسم "sensors.h"
- مصدر الحقيقة. الوثيقة الأولى التي سيتم تحديثها عند تطوير ميزات جديدة.
- Android CDD (مستند تعريف التوافق)
- /التوافق/android-cdd.pdf
- انظر الأقسام المتعلقة بأجهزة الاستشعار.
- إن CDD متساهل، لذا فإن تلبية متطلبات CDD لا يكفي لضمان أجهزة استشعار عالية الجودة.