Bluetooth

Android Bluetooth HAL simgesi

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:

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
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.