Bluetooth

Android Bluetooth HAL simgesi

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:

Android Bluetooth yığınının katmanlarını gösteren şema.

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.