
يوفر Android حزمة Bluetooth افتراضية تدعم كلاً من Classic Bluetooth و Bluetooth Low Energy. باستخدام Bluetooth ، يمكن لأجهزة Android إنشاء شبكات منطقة شخصية لإرسال البيانات واستلامها باستخدام أجهزة Bluetooth القريبة.
في Android 4.3 والإصدارات الأحدث ، توفر مكدس Android Bluetooth القدرة على تنفيذ Bluetooth Low Energy (BLE). للاستفادة الكاملة من واجهات برمجة تطبيقات BLE ، اتبع متطلبات Android Bluetooth HCI . يمكن لأجهزة Android المزودة بمجموعة شرائح مؤهلة تنفيذ إما Classic Bluetooth أو كلاسيك Bluetooth و BLE. لا يتوافق BLE مع شرائح البلوتوث القديمة.
في Android 8.0 ، تكون حزمة Bluetooth الأصلية مؤهلة تمامًا لـ Bluetooth 5. لاستخدام ميزات Bluetooth 5 المتاحة ، يحتاج الجهاز إلى مجموعة شرائح مؤهلة لـ Bluetooth 5.
بنية Android 8.0
يتصل تطبيق Bluetooth بعملية Bluetooth من خلال Binder. تستخدم عملية Bluetooth JNI للتواصل مع مكدس Bluetooth وتزويد المطورين بإمكانية الوصول إلى ملفات تعريف Bluetooth المختلفة. يوضح هذا الرسم البياني الهيكل العام لمكدس البلوتوث:

- إطار تطبيق
- على مستوى إطار التطبيق ، يوجد رمز التطبيق ، والذي يستخدم واجهات برمجة التطبيقات android.bluetooth للتفاعل مع أجهزة Bluetooth. داخليًا ، يستدعي هذا الرمز عملية Bluetooth من خلال آلية Binder IPC.
- خدمة نظام البلوتوث
- يتم تجميع خدمة نظام Bluetooth ، الموجودة في
packages/apps/Bluetooth
، كتطبيق Android وتنفذ خدمات Bluetooth وملفات التعريف في طبقة إطار عمل Android. يستدعي هذا التطبيق مكدس Bluetooth الأصلي عبر JNI. - JNI
- يوجد رمز JNI المرتبط بـ android.bluetooth في
packages/apps/Bluetooth/jni
. يتصل كود JNI بمكدس Bluetooth عند حدوث عمليات Bluetooth معينة ، مثل اكتشاف الأجهزة. - حزمة بلوتوث
- يتم توفير مكدس Bluetooth الافتراضي في AOSP ويقع في
system/bt
. يقوم المكدس بتنفيذ Bluetooth HAL العام وتخصيصه بالامتدادات وتغييرات التكوين. - تنفيذ البائع
- تتفاعل أجهزة البائع مع مكدس Bluetooth باستخدام لغة تصميم واجهة الأجهزة (HIDL).
HIDL
يحدد HIDL الواجهة بين مكدس Bluetooth وتنفيذ البائع. لإنشاء ملفات Bluetooth HIDL ، قم بتمرير ملفات واجهة Bluetooth إلى أداة إنشاء HIDL. توجد ملفات الواجهة في hardware/interfaces/bluetooth
.
تطوير مكدس البلوتوث
مكدس Android 8.0 Bluetooth عبارة عن مكدس Bluetooth مؤهل بالكامل. قائمة المؤهلات موجودة على موقع Bluetooth SIG على الويب تحت QDID 97584 .
مكدس البلوتوث الأساسي موجود في system/bt
. يحدث التطوير في AOSP ، والمساهمات موضع ترحيب.
Android 7.x والبنية الأقدم
تتواصل خدمة نظام Bluetooth مع مكدس Bluetooth من خلال JNI ومع التطبيقات من خلال Binder IPC. توفر خدمة النظام للمطورين إمكانية الوصول إلى ملفات تعريف Bluetooth المتنوعة. يوضح هذا الرسم البياني الهيكل العام لمكدس البلوتوث:

- إطار تطبيق
- على مستوى إطار التطبيق ، يوجد رمز التطبيق ، والذي يستخدم واجهات برمجة التطبيقات android.bluetooth للتفاعل مع أجهزة Bluetooth. داخليًا ، يستدعي هذا الرمز عملية Bluetooth من خلال آلية Binder IPC.
- خدمة نظام البلوتوث
- يتم تجميع خدمة نظام Bluetooth ، الموجودة في
packages/apps/Bluetooth
، كتطبيق Android وتنفذ خدمة Bluetooth وملفات التعريف في طبقة إطار عمل Android. يستدعي هذا التطبيق طبقة HAL عبر JNI. - JNI
- يوجد رمز JNI المرتبط بـ android.bluetooth في
packages/apps/Bluetooth/jni
. يستدعي رمز JNI طبقة HAL ويستقبل عمليات الاسترجاعات من HAL عند حدوث عمليات Bluetooth معينة ، مثل اكتشاف الأجهزة. - هال
- تحدد طبقة تجريد الأجهزة الواجهة القياسية التيتستدعيها واجهات برمجةتطبيقات android.bluetooth وعملية Bluetooth والتي يجب عليك تنفيذها حتى تعمل أجهزة Bluetooth بشكل صحيح. ملف رأس Bluetooth HAL هو
hardware/libhardware/include/hardware/bluetooth.h
. بالإضافة إلى ذلك ،hardware/libhardware/include/hardware/bt_*.h
جميع ملفاتhardware/libhardware/include/hardware/bt_*.h
. - حزمة بلوتوث
- يتم توفير مكدس Bluetooth الافتراضي لك وهو موجود في
system/bt
. يقوم المكدس بتنفيذ Bluetooth HAL العام وتخصيصه بالامتدادات وتغييرات التكوين. - ملحقات البائعين
- لإضافة امتدادات مخصصة وطبقة HCI للتتبع ، يمكنك إنشاء وحدة libbt-vendor وتحديد هذه المكونات.
تنفيذ HAL
يوجد Bluetooth HAL في /hardware/libhardware/include/hardware/bluetooth.h
. يحتوي ملف bluetooth.h
على الواجهة الأساسية لمكدس Bluetooth ، ويجب عليك تنفيذ وظائفه.
توجد الملفات الخاصة بملف التعريف في نفس الدليل. للحصول على تفاصيل ، راجع مرجع ملف HAL .