Google berkomitmen untuk memajukan ekuitas ras untuk komunitas kulit hitam. Lihat bagaimana.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Bluetooth

Ikon Android Bluetooth HAL

Android menyediakan tumpukan Bluetooth default yang mendukung Bluetooth Klasik dan Bluetooth Low Energy. Menggunakan Bluetooth, perangkat Android dapat membuat jaringan area pribadi untuk mengirim dan menerima data dengan perangkat Bluetooth terdekat.

Di Android 4.3 dan yang lebih baru, tumpukan Bluetooth Android menyediakan kemampuan untuk mengimplementasikan Bluetooth Low Energy (BLE). Untuk memanfaatkan sepenuhnya API BLE, ikuti Persyaratan Android Bluetooth HCI . Perangkat Android dengan chipset yang memenuhi syarat dapat mengimplementasikan Bluetooth Klasik atau Bluetooth Klasik dan BLE. BLE tidak kompatibel dengan chipset Bluetooth yang lebih lama.

Di Android 8.0, tumpukan Bluetooth asli sepenuhnya memenuhi syarat untuk Bluetooth 5. Untuk menggunakan fitur Bluetooth 5 yang tersedia, perangkat harus memiliki chipset berkualifikasi Bluetooth 5.

Arsitektur Android 8.0

Aplikasi Bluetooth berkomunikasi dengan proses Bluetooth melalui Binder. Proses Bluetooth menggunakan JNI untuk berkomunikasi dengan tumpukan Bluetooth dan memberi pengembang akses ke berbagai profil Bluetooth. Diagram ini menunjukkan struktur umum tumpukan Bluetooth:

Android 8.0 arsitektur Bluetooth
Gambar 1. Arsitektur Bluetooth Android 8.0
Kerangka kerja aplikasi
Pada level framework aplikasi adalah kode aplikasi, yang menggunakan API android.bluetooth untuk berinteraksi dengan perangkat keras Bluetooth. Secara internal, kode ini memanggil proses Bluetooth melalui mekanisme Binder IPC.
Layanan sistem Bluetooth
Layanan sistem Bluetooth, yang terletak di packages/apps/Bluetooth , dikemas sebagai aplikasi Android dan mengimplementasikan layanan dan profil Bluetooth di lapisan kerangka Android. Aplikasi ini memanggil ke tumpukan Bluetooth asli melalui JNI.
JNI
Kode JNI yang terkait dengan android.bluetooth terletak di packages/apps/Bluetooth/jni . Kode JNI memanggil ke dalam tumpukan Bluetooth ketika operasi Bluetooth tertentu terjadi, seperti ketika perangkat ditemukan.
Tumpukan Bluetooth
Tumpukan Bluetooth default disediakan di AOSP dan terletak di system/bt . Tumpukan mengimplementasikan HAL Bluetooth generik dan menyesuaikannya dengan ekstensi dan perubahan konfigurasi.
Implementasi vendor
Perangkat vendor berinteraksi dengan tumpukan Bluetooth menggunakan Bahasa Desain Antarmuka Perangkat Keras (HIDL).

HIDL

HIDL mendefinisikan antarmuka antara tumpukan Bluetooth dan implementasi vendor. Untuk membuat file Bluetooth HIDL, masukkan file antarmuka Bluetooth ke alat generasi HIDL. File antarmuka terletak di hardware/interfaces/bluetooth .

Pengembangan tumpukan Bluetooth

Android 8.0 Bluetooth stack adalah tumpukan Bluetooth yang sepenuhnya memenuhi syarat. Daftar kualifikasi ada di situs web Bluetooth SIG di bawah QDID 97584 .

Inti tumpukan Bluetooth berada di system/bt . Pengembangan terjadi di AOSP, dan kontribusi diterima.

Android 7.x dan arsitektur sebelumnya

Layanan sistem Bluetooth berkomunikasi dengan tumpukan Bluetooth melalui JNI dan dengan aplikasi melalui Binder IPC. Layanan sistem menyediakan pengembang dengan akses ke berbagai profil Bluetooth. Diagram ini menunjukkan struktur umum tumpukan Bluetooth:

Arsitektur Bluetooth Android
Gambar 2. Android 7.x dan arsitektur Bluetooth sebelumnya
Kerangka kerja aplikasi
Pada level framework aplikasi adalah kode aplikasi, yang memanfaatkan API android.bluetooth untuk berinteraksi dengan perangkat keras Bluetooth. Secara internal, kode ini memanggil proses Bluetooth melalui mekanisme Binder IPC.
Layanan sistem Bluetooth
Layanan sistem Bluetooth, yang terletak di packages/apps/Bluetooth , dikemas sebagai aplikasi Android dan mengimplementasikan layanan dan profil Bluetooth di lapisan kerangka Android. Aplikasi ini memanggil ke lapisan HAL melalui JNI.
JNI
Kode JNI yang terkait dengan android.bluetooth terletak di packages/apps/Bluetooth/jni . Kode JNI panggilan ke lapisan HAL dan menerima panggilan balik dari HAL ketika operasi Bluetooth tertentu terjadi, seperti ketika perangkat ditemukan.
HAL
Lapisan abstraksi perangkat keras mendefinisikan antarmuka standar yang digunakan oleh API android.bluetooth dan proses Bluetooth dan Anda harus menerapkan agar fungsi perangkat keras Bluetooth Anda benar. File header untuk Bluetooth HAL adalah hardware/libhardware/include/hardware/bluetooth.h . Selain itu, tinjau semua file hardware/libhardware/include/hardware/bt_*.h
Tumpukan Bluetooth
Tumpukan Bluetooth default disediakan untuk Anda dan terletak di system/bt . Tumpukan mengimplementasikan HAL Bluetooth generik dan menyesuaikannya dengan ekstensi dan perubahan konfigurasi.
Ekstensi vendor
Untuk menambahkan ekstensi khusus dan lapisan HCI untuk pelacakan, Anda dapat membuat modul libbt-vendor dan menentukan komponen ini.

Menerapkan HAL

Bluetooth HAL terletak di /hardware/libhardware/include/hardware/bluetooth.h . File bluetooth.h berisi antarmuka dasar untuk tumpukan Bluetooth, dan Anda harus mengimplementasikan fungsinya.

File khusus profil terletak di direktori yang sama. Untuk detailnya, lihat Referensi File HAL .