
Android มีสแต็กบลูทูธเริ่มต้นที่รองรับทั้งบลูทูธแบบคลาสสิกและบลูทูธพลังงานต่ำ (BLE) อุปกรณ์ Android สามารถสร้างเครือข่ายส่วนบุคคลเพื่อส่งและรับข้อมูลกับอุปกรณ์บลูทูธที่อยู่ใกล้เคียงได้โดยใช้บลูทูธ
ใน Android 4.3 ขึ้นไป สแต็กบลูทูธของ Android มีความสามารถในการใช้ BLE หากต้องการใช้ BLE API อย่างเต็มรูปแบบ ให้ทำตาม ข้อกำหนด HCI ของบลูทูธใน Android อุปกรณ์ Android ที่มีชิปเซ็ตที่ผ่านการรับรองสามารถใช้บลูทูธแบบคลาสสิก หรือทั้งบลูทูธแบบคลาสสิกและ BLE ก็ได้ BLE ไม่สามารถใช้งานร่วมกับชิปเซ็ตบลูทูธรุ่นเก่าได้
ใน Android 8.0 สแต็กบลูทูธผ่านการรับรองสำหรับบลูทูธ 5 อย่างสมบูรณ์ หากต้องการใช้ฟีเจอร์บลูทูธ 5 ที่มี อุปกรณ์ต้องมีชิปเซ็ตที่ผ่านการรับรองบลูทูธ 5
สถาปัตยกรรม Android
แอปบลูทูธจะสื่อสารกับกระบวนการบลูทูธผ่าน Binder กระบวนการบลูทูธใช้ Java Native Interface (JNI) เพื่อสื่อสารกับสแต็กบลูทูธ และให้สิทธิ์เข้าถึงโปรไฟล์บลูทูธต่างๆ แก่นักพัฒนาแอป แผนภาพนี้แสดงโครงสร้างทั่วไปของสแต็กบลูทูธ

รูปที่ 1 สถาปัตยกรรมบลูทูธของ Android
- app framework
- ที่ระดับ app framework จะมีโค้ดแอปซึ่งใช้
android.bluetoothAPI เพื่อโต้ตอบกับฮาร์ดแวร์บลูทูธ ภายใน โค้ดนี้จะเรียกกระบวนการบลูทูธผ่านกลไก Binder IPC - แอปบลูทูธ
- แอปบลูทูธซึ่งอยู่ใน
packages/modules/Bluetooth/android/appจะบรรจุเป็นแอป Android และใช้โปรไฟล์บลูทูธที่เลเยอร์ Android framework แอปนี้จะเรียกสแต็กบลูทูธผ่าน JNI - JNI
- โค้ด JNI ที่เชื่อมโยงกับ
android.bluetoothจะอยู่ในpackages/modules/Bluetooth/android/app/jniโค้ด JNI จะเรียกสแต็กบลูทูธเมื่อมีการดำเนินการบลูทูธบางอย่างเกิดขึ้น เช่น เมื่อมีการค้นพบอุปกรณ์ - สแต็กบลูทูธ
- สแต็กบลูทูธเริ่มต้นมีให้ใช้งานใน AOSP และอยู่ใน
packages/modules/Bluetooth/systemสแต็กจะใช้ HAL บลูทูธทั่วไปและปรับแต่งด้วยส่วนขยายและการเปลี่ยนแปลงการกำหนดค่า - การติดตั้งใช้งานของผู้ให้บริการ
- อุปกรณ์ของผู้ให้บริการจะโต้ตอบกับสแต็กบลูทูธโดยใช้ภาษาที่ใช้นิยามอินเทอร์เฟซสำหรับฮาร์ดแวร์ (HIDL)
HIDL
HIDL กำหนดอินเทอร์เฟซระหว่าง
สแต็กบลูทูธกับการติดตั้งใช้งานของผู้ให้บริการ หากต้องการสร้างไฟล์ HIDL ของบลูทูธ ให้ส่งไฟล์อินเทอร์เฟซบลูทูธไปยังเครื่องมือสร้าง HIDL ไฟล์อินเทอร์เฟซจะอยู่ใน
hardware/interfaces/bluetooth
การพัฒนาสแต็กบลูทูธ
สแต็กบลูทูธของ Android เป็นสแต็กบลูทูธที่สมบูรณ์ในตัวเอง รายชื่อการรับรองจะอยู่ในเว็บไซต์ Bluetooth SIG (ต้องลงชื่อเข้าใช้) ในส่วน QDID 169365
สแต็กบลูทูธหลักจะอยู่ใน
packages/modules/Bluetooth
การพัฒนาเกิดขึ้นใน AOSP และเรายินดีรับการมีส่วนร่วมจากคุณ