البلوتوث

رمز Android Bluetooth HAL

يوفر Android حزمة بلوتوث تلقائية تتوافق مع كلٍّ من البلوتوث الكلاسيكي والبلوتوث المنخفض الطاقة (BLE). باستخدام البلوتوث، يمكن لأجهزة Android إنشاء شبكات شخصية لإرسال البيانات واستلامها من أجهزة البلوتوث القريبة.

في الإصدار 4.3 من Android والإصدارات الأحدث، تتيح حزمة بلوتوث Android إمكانية استخدام البلوتوث المنخفض الطاقة. لاستخدام واجهات برمجة التطبيقات الخاصة بالبلوتوث المنخفض الطاقة بشكل كامل، اتّبِع متطلبات واجهة التحكم بالمضيف (HCI) في Android Bluetooth. يمكن لأجهزة Android التي تتضمّن مجموعة شرائح مؤهَّلة استخدام البلوتوث الكلاسيكي أو كلٍّ من البلوتوث الكلاسيكي والبلوتوث المنخفض الطاقة. لا يتوافق البلوتوث المنخفض الطاقة مع مجموعات شرائح البلوتوث القديمة.

في الإصدار 8.0 من Android، تكون حزمة البلوتوث مؤهَّلة بالكامل لاستخدام البلوتوث 5. لاستخدام ميزات البلوتوث 5 المتاحة، يجب أن يتضمّن الجهاز مجموعة شرائح مؤهَّلة لاستخدام البلوتوث 5.

بنية Android

يتواصل تطبيق البلوتوث مع عملية البلوتوث من خلال Binder. تستخدم عملية البلوتوث واجهة Java الأصلية (JNI) للتواصل مع حزمة البلوتوث وتمنح المطوّرين إمكانية الوصول إلى ملفات تعريف البلوتوث المختلفة. يوضِّح هذا الرسم البياني البنية العامة لحزمة البلوتوث:

مخطّط بياني يعرض طبقات حزمة بروتوكول Bluetooth في Android

الشكل 1: بنية Android Bluetooth

إطار عمل التطبيق
على مستوى إطار عمل التطبيق، توجد تعليمات برمجية للتطبيق تستخدم android.bluetooth واجهات برمجة التطبيقات للتفاعل مع أجهزة البلوتوث. داخليًا، تستدعي هذه التعليمات البرمجية عملية البلوتوث من خلال آلية Binder IPC.
تطبيق البلوتوث
يتم تجميع تطبيق البلوتوث، الموجود في packages/modules/Bluetooth/android/app، كتطبيق Android ويستخدم ملفات تعريف البلوتوث على طبقة إطار عمل Android. يستدعي هذا التطبيق حزمة البلوتوث من خلال واجهة Java الأصلية (JNI).
JNI
توجد تعليمات JNI البرمجية المرتبطة بـ android.bluetooth في packages/modules/Bluetooth/android/app/jni. تستدعي تعليمات JNI البرمجية حزمة البلوتوث عند حدوث عمليات بلوتوث معيّنة، مثل اكتشاف الأجهزة.
حزمة البلوتوث
يتم توفير حزمة البلوتوث التلقائية في AOSP وتوجد في packages/modules/Bluetooth/system. تستخدم الحزمة واجهة HAL العامة للبلوتوث وتخصّصها باستخدام الإضافات وتغييرات الإعدادات.
تنفيذ البائع
تتفاعل أجهزة البائع مع حزمة البلوتوث باستخدام لغة تعريف واجهة HAL (HIDL).

HIDL

تحدّد HIDL الواجهة بين حزمة البلوتوث وتنفيذ البائع. لإنشاء ملفات Bluetooth HIDL، مرِّر ملفات واجهة البلوتوث إلى أداة إنشاء HIDL. توجد ملفات الواجهة في hardware/interfaces/bluetooth.

تطوير حزمة البلوتوث

حزمة Android Bluetooth هي حزمة بلوتوث مؤهَّلة بالكامل. تظهر قائمة التأهيل على موقع Bluetooth SIG الإلكتروني (يجب تسجيل الدخول) ضِمن QDID 169365.

توجد حزمة البلوتوث الأساسية في packages/modules/Bluetooth. يتم التطوير في AOSP، ونرحب بمساهماتك.