Android, hem Klasik Bluetooth'u hem de Bluetooth Düşük Enerji'yi (BDE) destekleyen varsayılan bir Bluetooth yığını sağlar. Android cihazlar, Bluetooth'u kullanarak yakındaki Bluetooth cihazlarıyla veri göndermek ve almak için kişisel alan ağları oluşturabilir.
Android 4.3 ve sonraki sürümlerde, Android Bluetooth yığını BLE'yi uygulama olanağı sunar. BDE API'lerini tam olarak kullanmak için Android Bluetooth HCI Gereksinimleri'ni uygulayın. Uygun yonga setine sahip Android cihazlar Classic Bluetooth'u veya hem Classic Bluetooth hem de BLE'yi uygulayabilir. BLE, eski Bluetooth yonga setleriyle geriye dönük olarak uyumlu değildir.
Android 8.0'da Bluetooth yığını, Bluetooth 5 için tamamen niteliklidir. Kullanılabilir Bluetooth 5 özelliklerini kullanmak için cihazda Bluetooth 5 sertifikalı bir yonga seti olması gerekir.
Android mimarisi
Bluetooth uygulaması, Binder aracılığıyla Bluetooth süreciyle iletişim kurar. Bluetooth işlemi, Bluetooth yığınıyla iletişim kurmak için Java Native Interface'i (JNI) kullanır ve geliştiricilere çeşitli Bluetooth profillerine erişim olanağı sağlar. Bu şemada Bluetooth yığınının genel yapısı gösterilmektedir:
1. şekil. Android Bluetooth mimarisi.
- uygulama çerçevesi
- Uygulama çerçevesi düzeyinde, Bluetooth donanımıyla etkileşim kurmak için
android.bluetooth
API'lerini kullanan uygulama kodu bulunur. Bu kod, dahili olarak Binder IPC mekanizması aracılığıyla Bluetooth sürecini çağırır. - Bluetooth uygulaması
packages/modules/Bluetooth/android/app
konumundaki Bluetooth uygulaması, Android uygulaması olarak paketlenir ve Bluetooth profillerini Android çerçeve katmanında uygular. Bu uygulama, JNI aracılığıyla Bluetooth yığınına çağrı yapar.- JNI
- ile ilişkili JNI kodu
android.bluetooth
konumunda bulunur.packages/modules/Bluetooth/android/app/jni
JNI kodu, cihazların keşfedilmesi gibi belirli Bluetooth işlemleri gerçekleştiğinde Bluetooth yığınına çağrı yapar. - Bluetooth yığını
- Varsayılan Bluetooth yığını AOSP'de sağlanır ve
packages/modules/Bluetooth/system
konumunda bulunur. Yığın, genel Bluetooth HAL'yi uygular ve uzantılar ile yapılandırma değişiklikleriyle özelleştirir. - tedarikçi uygulaması
- Tedarikçi cihazları, HAL arayüzü tanım dilini (HIDL) kullanarak Bluetooth yığınıyla etkileşime girer.
HIDL
HIDL, Bluetooth yığını ile satıcı uygulaması arasındaki arayüzü tanımlar. Bluetooth HIDL dosyalarını oluşturmak için Bluetooth arayüz dosyalarını HIDL oluşturma aracına aktarın. Arayüz dosyaları hardware/interfaces/bluetooth
konumunda bulunur.
Bluetooth yığını geliştirme
Android Bluetooth yığını, tam nitelikli bir Bluetooth yığınıdır. Uygunluk listesi, Bluetooth SIG web sitesinde (giriş yapılması gerekir) QDID 169365 altında yer alır.
Temel Bluetooth yığını packages/modules/Bluetooth
içinde bulunur.
Geliştirme AOSP'de yapılır ve katkılar kabul edilir.