
Android, hem Klasik Bluetooth'u hem de Bluetooth Düşük Enerji'yi (BLE) 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ğı sağlar. 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 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
Bir 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 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
-
android.bluetooth
ile ilişkili JNI kodu,packages/modules/Bluetooth/android/app/jni
konumunda bulunur. 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'ı uygular ve uzantılar ile yapılandırma değişiklikleriyle özelleştirir. - tedarikçi uygulaması
- Tedarikçi cihazları, HAL arayüz tanımı dili (HIDL) kullanılarak 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 iletin. 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.