إن أجهزة الاستشعار المتعددة HAL هي إطار عمل يتيح للمستشعرات تشغيل مستويات HALs جنبًا إلى جنب مع وغيرها من طبقات HALs للمستشعر. تحمّل أجهزة الاستشعار المتعددة HAL بشكل ديناميكي مستويات أدنى من البث المباشر للاستشعار (HALs). المخزنة كمكتبات ديناميكية في قسم المورد وتطلب معاودة الاتصال يمكنه التعامل مع نشر الأحداث والحصول على قفل التنشيط وتحريره. إن سطح HAL للمستشعر هو عبارة عن طبقة تجريد الأجهزة (HAL) للمستشعرات مدمجة في كائن مشترك على قسم البائع ويتم استخدامه بواسطة إطار عمل HAL متعدد. لا تتم تصفية HALs الفرعية هذه تعتمد على بعضها البعض أو على رمز HAL المتعدد الذي يحتوي على الوظيفة الرئيسية لهذه العملية.
تتوفّر أجهزة الاستشعار Multi-HAL 2.1 على الأجهزة التي تعمل بنظام التشغيل Android 11 أو أعلى، تكرار أجهزة الاستشعار Multi-HAL 2.0 التي تتيح تحميل HALs فرعية يمكنها كشف زاوية المفصّلة نوع جهاز الاستشعار. لإتاحة هذا النوع من أجهزة الاستشعار، يجب أن تستخدم "HALs" الفرعية واجهات برمجة التطبيقات التابعة لـ HAL. المحدد في 2.1 عنوان SubHal:
بالنسبة إلى الأجهزة التي تعمل بالإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث والتي تستخدم لأجهزة استشعار AIDL HAL، يمكنك استخدام طبقة رقيقة متعددة القنوات (HAL) للسماح بإمكانية بروتوكول HAL متعددة. للاطّلاع على تفاصيل التنفيذ الرؤية استخدام أجهزة استشعار متعدّدة (HAL) مع واجهة AIDL HAL الخاصة بأجهزة الاستشعار
الفرق بين أجهزة الاستشعار Multi-HAL 2 وأجهزة الاستشعار HAL 2
تتوفّر أجهزة الاستشعار Multi-HAL 2 على الأجهزة التي تعمل بنظام التشغيل Android
10 أو أعلى،
ويقدم عدة تجريدات أعلى الحساسات HAL
2 لتسهيل
للتفاعل مع واجهات برمجة تطبيقات HAL. تقدّم أجهزة الاستشعار Multi-HAL 2
HalProxy
معالجة تنفيذ واجهة أجهزة الاستشعار HAL 2
V2_1/SubHal
(أو
V2_0/SubHal
)
للسماح لـ HalProxy
بالتفاعل مع HALs الفرعية.
تختلف الواجهة ISensorsSubHal
عن واجهة
2.1/ISensors.hal
(أو
2.0/ISensors.hal
)
بالطرق التالية:
- تجتاز طريقة الإعداد
IHalProxyCallback
بدلاً من اثنين من FMQs وISensorsCallback
. - يجب أن تنفذ "HALs" الفرعية دالة تصحيح أخطاء لتوفير تصحيح الأخطاء المعلومات في تقارير الأخطاء.
- يجب أن تنفذ قناة HALs الفرعية دالة اسم بحيث يمكن تحميل دالة HAL الفرعية تمييزها عن الكائنات الفرعية الأخرى الموجودة في النطاق.
يكمن الاختلاف الرئيسي بين أجهزة الاستشعار Multi-HAL 2 وHAL 2 في
لتهيئة الدوال. بدلاً من توفير أجهزة FMQ، يمكن لـ IHalProxyCallback
توفير طريقتين، إحداهما لنشر أحداث المستشعر إلى أدوات الاستشعار
وطريقة واحدة لإنشاء عمليات قفل التنشيط. الخيارات المتقدمة، تعمل أجهزة الاستشعار
تدير إدارة متعددة القنوات (HAL) جميع التفاعلات مع FMQs لضمان تسليم
أحداث الاستشعار لجميع الكائنات الفرعية HAL. وننصح بشدة بأن تستخدم الحسابات الفرعية (HALs)
createScopedWakelock
لتفويض عبء إنهاء قفل التنشيط إلى
أجهزة الاستشعار Multi-HAL ووضع قفل التنشيط في مكان واحد لقفل تنشيط واحد
لجميع أجهزة الاستشعار المتعددة HAL، ما يقلل من قفل المكالمات وفتح قفلها.
وتضم أجهزة الاستشعار Multi-HAL 2 أيضًا بعض ميزات الأمان المدمجة. يعالج
الحالات التي تكون فيها أداة الاستشعار ممتلئًا أو يكون فيها إطار عمل أداة استشعار Android
وإعادة التشغيل ويجب إعادة ضبط حالة جهاز الاستشعار. بالإضافة إلى ذلك، عندما تكون الأحداث
التي يتم نشرها في الفئة HalProxy
ولكن يتعذّر على إطار عمل أداة الاستشعار قبولها
الأحداث فورًا، يمكن لأجهزة الاستشعار المتعددة HAL نقل الأحداث إلى خلفية
للسماح بمتابعة العمل عبر جميع HALs الفرعية أثناء انتظار
الأحداث التي سيتم نشرها.
تنفيذ رمز المصدر والمرجع
يتوفّر رمز جميع أجهزة الاستشعار المتعددة القنوات (HAL) في
hardware/interfaces/sensors/common/default/2.X/multihal/
في ما يلي إرشادات لبعض الموارد.
HalProxy.h
: يتم إنشاء مثيل للكائنHalProxy
من خلال أجهزة استشعار متعددة القنوات (HAL) ويتعامل مع تمرير البيانات من الكائنات الفرعية المعالجة (HALs) إلى إطار عمل المستشعر.HalProxy.cpp
: يتضمن تنفيذ الدالةHalProxy
جميع الأسباب المنطقية اللازمة الاتصال المتعدد بين الكائنات الفرعية HAL وإطار عمل أداة الاستشعار.SubHal.h
: تحدد الواجهةISensorsSubHal
الواجهة التي يجب أن تتوفر لها فئات HALs فرعية يجب متابعتها لتتوافق معHalProxy
. تنفذ HAL الفرعية حتى يمكن استخدام الكائنHalProxyCallback
postEvents
وcreateScopedWakelock
لعمليات تطبيق Multi-HAL 2.0، استخدم الإصدار 2.0 من
SubHal.h
hardware/interfaces/sensors/common/default/2.X/multihal/tests/
: تتحقّق اختبارات الوحدة هذه من صحة تنفيذHalProxy
.hardware/interfaces/sensors/common/default/2.X/multihal/tests/fake_subhal/
: يستخدم هذا المثال لعمليات التنفيذ الفرعية للمواد الكيميائية أدوات استشعار وهمية لإنشاء البيانات. وهو مفيد لاختبار كيفية تفاعل عدة طبقات HALs على الجهاز.
التنفيذ
يوضّح هذا القسم كيفية تنفيذ أجهزة الاستشعار المتعددة HAL في ما يلي: الحالات:
- استخدام أجهزة الاستشعار المتعددة HAL مع معيار AIDL HAL لأجهزة الاستشعار
- تطبيق أجهزة الاستشعار Multi-HAL 2.1
- نقل البيانات من أجهزة الاستشعار Multi-HAL 2.0 إلى Multi-HAL 2.1
- نقل البيانات من أجهزة الاستشعار HAL 2.0
- نقل البيانات من أجهزة الاستشعار HAL 1.0
- نقل البيانات من أجهزة الاستشعار Multi-HAL 1.0
استخدام أجهزة الاستشعار المتعددة HAL مع أداة الاستشعار AIDL HAL
للسماح بإمكانية بروتوكول HAL المتعددة باستخدام أجهزة الاستشعار AIDL HAL، يجب استيراد واجهة AIDL. وحدة طبقة الرقائق متعددة HAL، والموجودة في hardware/interfaces/sensors/aidl/default/multihal/: تتعامل الوحدة مع عملية التحويل بين تعريف HAL لمستشعرَي AIDL وHIDL. ويحدد برنامج تضمين لواجهة HAL المتعددة الموضحة في تطبيق أجهزة الاستشعار Multi-HAL 2.1: معيار AIDL متعدد المستويات تتوافق طبقة شيم مع الأجهزة التي تطبق أدوات الاستشعار Multi-HAL 2.1.
تسمح لك طبقة الرقائق متعددة الفلاتر (HAL) من AIDL لكشف جهاز تتبع الرأس
أنواع مستشعرات IMU المحدودة المحور في مستشعرات AIDL HAL. لاستخدام أجهزة الاستشعار هذه
محددة من خلال واجهة AIDL HAL، اضبط الحقل type
في
بنية SensorInfo
في تنفيذ getSensorsList_2_1()
. هذا آمن
لأنّ حقول نوع أداة الاستشعار المدعومة بعدد صحيح في كل من مستشعرَي AIDL وHIDL HAL
لا تتداخلان.
تنفيذ أجهزة الاستشعار Multi-HAL 2.1
لتنفيذ أجهزة الاستشعار Multi-HAL 2.1 على جهاز جديد، يُرجى اتّباع الخطوات التالية:
- تنفيذ واجهة
ISensorsSubHal
كما هو موضّح فيSubHal.h
- نفِّذ
sensorsHalGetSubHal_2_1
فيSubHal.h
. أضِف استهداف
cc_library_shared
لإنشاء "HAL" فرعي تم تنفيذه حديثًا. عند إضافة الاستهداف:- التأكد من دفع الهدف إلى مكان ما على البائع قسم الجهاز.
- في ملف الإعداد الموجود على
/vendor/etc/sensors/hals.conf
، لإضافة المسار إلى المكتبة على سطر جديد. إذا لزم الأمر، أنشئ ملفhals.conf
.
للاطّلاع على مثال
Android.bp
لإنشاء مكتبة HAL فرعية، يُرجى الاطّلاع على.hardware/interfaces/sensors/common/default/2.X/multihal/tests/Android.bp
إزالة جميع الإدخالات البالغ عددها
android.hardware.sensors
منmanifest.xml
يحتوي على قائمة بـ HALs المتوافقة على الجهاز.إزالة جميع خدمات
android.hardware.sensors
وservice.rc
ملف من ملفdevice.mk
وإضافةandroid.hardware.sensors@2.1-service.multihal
وandroid.hardware.sensors@2.1-service.multihal.rc
إلىPRODUCT_PACKAGES
عند بدء التشغيل، يبدأ HalProxy
والبحث عن واجهة HAL الفرعية التي تم تنفيذها حديثًا.
وقم بتهيئته عن طريق استدعاء
sensorsHalGetSubHal_2_1
المنفذ من أجهزة الاستشعار Multi-HAL 2.0 إلى Multi-HAL 2.1
للانتقال من Multi-HAL 2.0 إلى Multi-HAL 2.1، نفِّذ
SubHal
وإعادة تجميع طبقة HAL الفرعية.
في ما يلي الاختلافات بين واجهتي الإصدار 2.0 و2.1 SubHal
:
- يستخدم
IHalProxyCallback
الأنواع التي تم إنشاؤها في الإصدار 2.1 من مواصفاتISensors.hal
- تستخدم الدالة
initialize()
علامةIHalProxyCallback
بدلاً من الإصدار من واجهةSubHal
التي تعمل بالإصدار 2.0 - يجب أن يتم تنفيذ "HALs" فرعية:
getSensorsList_2_1
وinjectSensorData_2_1
بدلاً منgetSensorsList
وinjectSensorData
حيث إن هاتين الطريقتين تستخدمان الأنواع الجديدة المضافة في الإصدار 2.1 من مواصفاتISensors.hal
. - يجب أن تعرض الحسابات الفرعية (HALs)
sensorsHalGetSubHal_2_1
بدلاً منsensorsHalGetSubHal
لـ Multi-HAL لمعاملتها باعتبارها الإصدار 2.1 HALs فرعية.
منفذ من أجهزة الاستشعار HAL 2.0
عند الترقية إلى أجهزة الاستشعار Multi-HAL 2.0 من Sensors Multi-HAL 2.0 2.0، تأكد من HAL التنفيذ يلبي المتطلبات التالية.
تهيئة HAL
تتضمن أجهزة الاستشعار HAL 2.0 وظيفة تهيئة تتيح لخدمة الاستشعار
لتمرير FMQs واستدعاء جهاز الاستشعار الديناميكي. في المستشعرات Multi-HAL 2.0،
تمرر الدالة initialize()
استدعاءً واحدًا يجب استخدامه للنشر
أحداث أداة الاستشعار، والحصول على عمليات قفل التنشيط، والإشعار باتصال أداة الاستشعار الديناميكية
انقطاع الاتصال.
نشر أحداث أداة الاستشعار في التنفيذ المتعدد المستويات (HAL)
بدلاً من نشر أحداث أداة الاستشعار من خلال FMQ، يجب أن تكتب HAL الفرعية أداة استشعار
الأحداث إلى
IHalProxyCallback
عند توفّر أحداث خاصة بأداة الاستشعار.
أحداث WAKE_UP
في أجهزة الاستشعار HAL 2.0، يمكن لـ HAL إدارة قفل التنشيط لتنفيذه. ضِمن
أجهزة الاستشعار Multi-HAL 2.0، تتيح تطبيق HAL-HAL الفرعي ما يلي:
إدارة عمليات قفل التنشيط ويمكن أن تطلب الحصول على قفل التنشيط من خلال الاستدعاء
createScopedWakelock
يجب الحصول على قفل تنشيط مُقفَل النطاق وتمريره إلى postEvents
عند ذلك.
نشر أحداث الاستيقاظ في تنفيذ بروتوكول HAL المتعدد.
أدوات الاستشعار الديناميكية
تتطلب أجهزة الاستشعار Multi-HAL 2.0 أن يكون onDynamicSensorsConnected
onDynamicSensorsDisconnected
بوصة
IHalProxyCallback
تسمى متى تغيرت توصيلات أداة الاستشعار الديناميكية. عمليات معاودة الاتصال هذه
متاحة كجزء من مؤشر IHalProxyCallback
الذي يتم تقديمه من خلال
الدالة initialize()
.
منفذ من أجهزة الاستشعار HAL 1.0
عند الترقية إلى أجهزة الاستشعار Multi-HAL 2.0 من Sensors Multi-HAL 2.0 1.0، تأكد من وجود HAL التنفيذ يلبي المتطلبات التالية.
تهيئة HAL
يجب أن تكون الدالة initialize()
متوافقة لإنشاء عملية معاودة الاتصال بين
تنفيذ طبقة تجريد الأجهزة (HAL) الفرعية وHAL المتعددة.
عرض أجهزة الاستشعار المتاحة
في أجهزة الاستشعار Multi-HAL 2.0، يجب أن تعرض الدالة getSensorsList()
القيمة نفسها
خلال عملية تشغيل جهاز واحد، حتى في عمليات إعادة تشغيل طبقة تجريد الأجهزة (HAL) في المستشعرات. هذا يسمح
إطار العمل لمحاولة إعادة إنشاء اتصالات جهاز الاستشعار إذا كان خادم النظام
تتم إعادة تشغيله. يمكن أن تتغيّر القيمة التي يعرضها getSensorsList()
بعد تشغيل الجهاز.
إعادة تشغيل الجهاز.
نشر أحداث أداة الاستشعار في التنفيذ المتعدد المستويات (HAL)
أمّا في أجهزة الاستشعار HAL 2.0، فبدلاً من الانتظار حتى يتم طلب poll()
،
كتابة أحداث أداة الاستشعار بشكل استباقي
IHalProxyCallback
متى توفرت أحداث المستشعر.
أحداث WAKE_UP
في أجهزة الاستشعار HAL 1.0، يمكن لـ HAL إدارة قفل التنشيط لتنفيذه. ضِمن
أجهزة استشعار Multi-HAL 2.0، وهي الأجهزة الفرعية HALs التي تسمح بتنفيذ مستويات HAL متعددة
إدارة عمليات قفل التنشيط ويمكن أن تطلب الحصول على قفل التنشيط من خلال الاستدعاء
createScopedWakelock
يجب الحصول على قفل تنشيط مُقفَل النطاق وتمريره إلى postEvents
عند ذلك.
نشر أحداث الاستيقاظ في تنفيذ بروتوكول HAL المتعدد.
أدوات الاستشعار الديناميكية
في أجهزة الاستشعار HAL 1.0، يتم عرض أدوات الاستشعار الديناميكية من خلال الدالة poll()
.
تتطلب أجهزة الاستشعار Multi-HAL 2.0 أن يكون onDynamicSensorsConnected
onDynamicSensorsDisconnected
بوصة
IHalProxyCallback
تسمى متى تغيرت توصيلات أداة الاستشعار الديناميكية. عمليات معاودة الاتصال هذه
متاحة كجزء من مؤشر IHalProxyCallback
الذي يتم تقديمه من خلال
الدالة initialize()
.
منفذ من أجهزة الاستشعار Multi-HAL 1.0
لنقل عملية تنفيذ حالية من Sensors Multi-HAL 1.0, اتبع هذه الخطوات.
- تأكد من أن تهيئة HAL لأجهزة الاستشعار موجودة في
/vendor/etc/sensors/hals.conf
قد يتضمن ذلك نقل الملف في/system/etc/sensors/hals.conf
. - أزل أي مراجع إلى
hardware/hardware.h
أوhardware/sensors.h
لأنّها غير متوافقة مع HAL 2.0. - منفذ HALs فرعيًا على النحو الموضَّح في نقل البيانات من أجهزة الاستشعار هال الإصدار 1.0
- اضبط أجهزة الاستشعار Multi-HAL 2.0 على أنها HAL (HAL) محددة باتّباع الخطوتَين 3 و 4 في القسم تنفيذ أجهزة الاستشعار Mutli-HAL 2.0.
التحقُّق
تشغيل أداة VTS
وعند دمج واحدة أو أكثر من أجهزة HALs الفرعية مع أجهزة الاستشعار Multi-Hal 2.1، استخدام حزمة اختبار المورّد (VTS) للتأكّد من أنّ الحزمة الفرعية تلبي عمليات التنفيذ جميع المتطلبات التي تحدّدها واجهة HAL لأدوات الاستشعار.
لتشغيل اختبارات VTS لأجهزة الاستشعار فقط عند إعداد VTS على جهاز مضيف، قم بتنفيذ الأوامر التالية:
vts-tradefed run commandAndExit vts \
--skip-all-system-status-check \
--primary-abi-only \
--skip-preconditions \
--module VtsHalSensorsV2_0Target && \
vts-tradefed run commandAndExit vts \
--skip-all-system-status-check \
--primary-abi-only \
--skip-preconditions \
--module VtsHalSensorsV2_1Target
في حال تشغيل طبقة الرقاقة AIDL Multi-HAL، شغِّل VtsAidlHalSensorsTargetTest
.
vts-tradefed run commandAndExit vts \
--skip-all-system-status-check \
--primary-abi-only \
--skip-preconditions \
--module VtsAidlHalSensorsTargetTest
إجراء اختبارات الوحدة
تختبر الوحدة في اختبار HalProxy_test.cpp
HalProxy
باستخدام درجات حرارة فرعية زائفة مزيفة
يتم إنشاء مثيل لها في اختبار الوحدة ولا يتم تحميلها ديناميكيًا. عند إنشاء
جديدة تحتية HAL، يجب أن تكون هذه الاختبارات بمثابة دليل حول كيفية إضافة اختبارات الوحدات التي
التحقق من تنفيذ عملية HAL الفرعية الجديدة بشكل صحيح.
لإجراء الاختبارات، نفِّذ الأوامر التالية:
cd $ANDROID_BUILD_TOP/hardware/interfaces/sensors/common/default/2.X/multihal/tests
atest
إجراء الاختبارات باستخدام طبقات HAL الفرعية الزائفة
إن HALs الفرعية المزيفة هي عمليات تنفيذ وهمية لواجهة ISensorsSubHal
.
تكشف درجات الحرارة الفرعية (HALs) عن قوائم مختلفة من المستشعرات. عندما يتم تشغيل أجهزة الاستشعار،
يتم بشكل دوري نشر أحداث أجهزة الاستشعار التي يتم إنشاؤها تلقائيًا على HalProxy
بناءً على الفواصل الزمنية المحددة في طلب جهاز استشعار معين.
يمكن استخدام طبقات HALs الفرعية الزائفة لاختبار كيفية عمل رمز Multi-HAL الكامل مع هي نطاقات HALs الأخرى المحملة في النظام وللتركيز على الجوانب المختلفة رمز أجهزة استشعار Multi-HAL
يتوفّر خياران زائفان من HALs في
hardware/interfaces/sensors/common/default/2.X/multihal/tests/fake_subhal/
لإنشاء قنوات HALs فرعية مزيفة ودفعها إلى جهاز، اتخذ الخطوات التالية:
شغِّل الأوامر التالية لإنشاء الطلبات الزائفة الثلاثة المختلفة وإرسالها. HALs فرعية إلى الجهاز:
$ANDROID_BUILD_TOP/hardware/interfaces/sensors/common/default/2.X/multihal/tests/
mma
adb push \ $ANDROID_BUILD_TOP/out/target/product/<device>/symbols/vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config1.so \ /vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config1.so
adb push \ $ANDROID_BUILD_TOP/out/target/product/<device>/symbols/vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config2.so \ /vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config2.so
adb push \ $ANDROID_BUILD_TOP/out/target/product/<device>/symbols/vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config3.so \ /vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config3.so
تعديل إعدادات HAL لأداة الاستشعار في
/vendor/etc/sensors/hals.conf
باستخدام مسارات HALs الفرعية المزيفة./vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config1.so /vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config2.so /vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config3.so
أعِد تشغيل
HalProxy
وحمِّل حسابات HALs الفرعية الجديدة المدرَجة في الإعداد.adb shell stop
adb shell start
تصحيح الأخطاء
يمكن للمطوّرين تصحيح أخطاء إطار العمل باستخدام الأمر lshal
. لطلب
تصحيح الأخطاء في طبقة تجريد الأجهزة (HAL) لأجهزة الاستشعار، شغِّل الأمر التالي:
adb root
adb shell lshal debug android.hardware.sensors@2.1::ISensors/default
وعندئذٍ، يتم عرض معلومات عن حالة HalProxy
وحمّامات HAL الفرعية التابعة له.
إخراجه إلى الوحدة الطرفية. في ما يلي مثال على مخرجات الأمر
عنصر واحد (HalProxy
) ورموز HAL فرعية زائفة.
Internal values:
Threads are running: true
Wakelock timeout start time: 200 ms ago
Wakelock timeout reset time: 73208 ms ago
Wakelock ref count: 0
# of events on pending write queue: 0
# of non-dynamic sensors across all subhals: 8
# of dynamic sensors across all subhals: 0
SubHals (2):
Name: FakeSubHal-OnChange
Debug dump:
Available sensors:
Name: Ambient Temp Sensor
Min delay: 40000
Flags: 2
Name: Light Sensor
Min delay: 200000
Flags: 2
Name: Proximity Sensor
Min delay: 200000
Flags: 3
Name: Relative Humidity Sensor
Min delay: 40000
Flags: 2
Name: FakeSubHal-OnChange
Debug dump:
Available sensors:
Name: Ambient Temp Sensor
Min delay: 40000
Flags: 2
Name: Light Sensor
Min delay: 200000
Flags: 2
Name: Proximity Sensor
Min delay: 200000
Flags: 3
Name: Relative Humidity Sensor
Min delay: 40000
Flags: 2
إذا كان الرقم المحدّد لـ # of events on pending write queue
هو
عدد كبير (1000 أو أكثر)،
هذا يشير إلى أن هناك العديد من الأحداث التي تنتظر كتابتها إلى أجهزة الاستشعار
إطار العمل. يشير هذا إلى أن خدمة أداة الاستشعار متوقفة مؤقتًا أو تعطّلت
لا تعالج أحداث أداة الاستشعار، أو أن مجموعة كبيرة من أحداث أجهزة الاستشعار
تم نشره مؤخرًا من قناة
HAL فرعية.
إذا كان عدد مراجع قفل التنشيط أكبر من 0
، يعني ذلك أنّ HalProxy
على قفل تنشيط. من المفترض أن تكون هذه القيمة أكبر من 0
فقط إذا كانت قيمة ScopedWakelock
معلقًا عمدًا أو إذا تم إرسال أحداث الاستيقاظ إلى HalProxy
لم تتم معالجتها بواسطة إطار عمل أداة الاستشعار.
يتم تمرير واصف الملف الذي تم تمريره إلى طريقة تصحيح الأخطاء HalProxy
إلى كل
وHAL فرعي، لذلك على المطوّرين تنفيذ طريقة تصحيح الأخطاء
الواجهة ISensorsSubHal
.