
Android پشته بلوتوث پیشفرضی ارائه میدهد که هم از بلوتوث کلاسیک و هم از بلوتوث کممصرف (BLE) پشتیبانی میکند. دستگاههای Android بااستفاده از بلوتوث میتوانند شبکههای منطقه شخصی ایجاد کنند تا با دستگاههای بلوتوث اطراف داده ارسال و دریافت کنند.
در Android نسخه ۴.۳ و بالاتر، پشته بلوتوث Android امکان پیادهسازی بلوتوث کممصرف را فراهم میکند. برای استفاده کامل از «میاناهای برنامهسازی کاربردی بلوتوث کممصرف»، الزامات Android Bluetooth HCI را دنبال کنید. دستگاههای Android با چیپست واجدشرایط میتوانند «بلوتوث کلاسیک» یا هم «بلوتوث کلاسیک» و هم BLE را پیادهسازی کنند. «بلوتوث کممصرف» با چیپستهای بلوتوث قدیمیتر سازگار نیست.
در Android 8.0، پشته بلوتوث بهطور کامل برای بلوتوث ۵ واجدشرایط است. برای استفاده از ویژگیهای دردسترس بلوتوث ۵، دستگاه باید تراشه واجدشرایط بلوتوث ۵ داشته باشد.
معماری Android
برنامه بلوتوث ازطریق Binder با فرایند بلوتوث ارتباط برقرار میکند. فرایند بلوتوث از «میانای بومی جاوا» (JNI) برای برقراری ارتباط با پشته بلوتوث استفاده میکند و به توسعهدهندگان امکان میدهد به نمایههای مختلف بلوتوث دسترسی داشته باشند. این نمودار ساختار کلی پشته بلوتوث را نشان میدهد:

شکل ۱. معماری بلوتوث Android.
- چارچوب برنامه
- در سطح چارچوب برنامه، کد برنامه وجود دارد که از
android.bluetoothمیاناهای برنامهسازی کاربردی برای تعامل با سختافزار بلوتوث استفاده میکند. در داخل، این کد فراخوانی میکند فرایند بلوتوث را ازطریق سازوکار Binder IPC. - برنامه بلوتوث
- برنامه «بلوتوث» که در
packages/modules/Bluetooth/android/appقرار دارد، بهصورت برنامه Android بستهبندی شده است و نمایههای «بلوتوث» را در لایه چارچوب Android پیادهسازی میکند. این برنامه ازطریق JNI با پشته بلوتوث تماس میگیرد. - JNI
- کد JNI منسوب به
android.bluetoothدرpackages/modules/Bluetooth/android/app/jniقرار دارد. وقتی عملیاتهای خاص بلوتوثی رخ میدهد، مثل وقتی که دستگاهها شناسایی میشوند، کد JNI پشته بلوتوث را فرا میخواند. - پشته بلوتوث
- پشته بلوتوث پیشفرض در AOSP ارائه میشود و در
packages/modules/Bluetooth/systemقرار دارد. این پشته، HAL بلوتوث عمومی را پیادهسازی میکند و آن را با افزونهها و تغییرات پیکربندی سفارشیسازی میکند. - پیادهسازی فروشنده
- دستگاههای فروشنده بااستفاده از زبان تعریف میانای HAL (HIDL) با پشته بلوتوث تعامل برقرار میکنند.
HIDL
HIDL رابط بین پشته
بلوتوث و پیادهسازی فروشنده را تعریف میکند. برای تولید فایلهای Bluetooth
HIDL، فایلهای رابط Bluetooth را به ابزار تولید HIDL
منتقل کنید. فایلهای میانای کاربری در
hardware/interfaces/bluetooth قرار دارند.
توسعه پشته بلوتوث
پشته بلوتوث Android یک پشته بلوتوث کاملاً واجدشرایط است. فهرست صلاحیت در وبسایت Bluetooth SIG (نیاز به ورود به سیستم دارد) در بخش QDID 169365 موجود است.
پشته اصلی بلوتوث در
packages/modules/Bluetooth قرار دارد.
توسعه در AOSP انجام میشود و از مشارکتها استقبال میشود.