Platform Android menyertakan dukungan untuk stack jaringan Bluetooth, yang memungkinkan perangkat bertukar data secara nirkabel dengan perangkat Bluetooth lainnya. Framework aplikasi menyediakan akses ke fungsi Bluetooth melalui Bluetooth API. API ini memungkinkan aplikasi terhubung ke perangkat Bluetooth lain, yang mengaktifkan fitur nirkabel point-to-point dan multipoint.
Dengan Bluetooth API, aplikasi dapat melakukan hal berikut:
- Pindai perangkat Bluetooth lain.
- Melakukan kueri adaptor Bluetooth lokal untuk perangkat Bluetooth yang disambungkan.
- Membuat saluran RFCOMM.
- Menghubungkan ke perangkat lain melalui penemuan layanan.
- Mentransfer data ke dan dari perangkat lain.
- Mengelola beberapa koneksi.
Topik ini berfokus pada Bluetooth Klasik. Bluetooth Klasik adalah pilihan yang tepat untuk operasi yang menggunakan baterai lebih intensif, yang mencakup streaming dan komunikasi antar-perangkat. Untuk perangkat Bluetooth dengan persyaratan daya rendah, pertimbangkan untuk menggunakan koneksi Bluetooth Hemat Energi.
Dokumentasi ini menjelaskan berbagai profil Bluetooth dan menjelaskan cara menggunakan Bluetooth API untuk menyelesaikan empat tugas utama yang diperlukan untuk berkomunikasi menggunakan Bluetooth:
- Menyiapkan Bluetooth.
- Menemukan perangkat yang disambungkan atau tersedia di area lokal.
- Menghubungkan perangkat.
- Mentransfer data antar-perangkat.
Untuk mendemonstrasikan penggunaan Bluetooth API, lihat aplikasi contoh Bluetooth Chat.
Dasar-dasar
Agar perangkat berkemampuan Bluetooth dapat mengirimkan data satu sama lain, perangkat tersebut harus membentuk saluran komunikasi terlebih dahulu menggunakan proses penyambungan. Satu perangkat, perangkat yang dapat ditemukan, membuatnya tersedia untuk permintaan koneksi masuk. Perangkat lain menemukan perangkat yang dapat ditemukan menggunakan proses penemuan layanan. Setelah perangkat yang dapat ditemukan menerima permintaan penyambungan, kedua perangkat tersebut menyelesaikan proses ikatan yang memungkinkan mereka bertukar kunci keamanan. Perangkat menyimpan kunci ini dalam cache untuk digunakan nanti. Setelah proses penyambungan dan ikatan selesai, kedua perangkat tersebut bertukar informasi. Setelah sesi selesai, perangkat yang memulai permintaan penyambungan akan merilis saluran yang telah menautkannya ke perangkat yang dapat ditemukan. Namun, kedua perangkat tetap terikat, sehingga dapat terhubung kembali secara otomatis selama sesi mendatang selama berada dalam jangkauan satu sama lain dan tidak ada perangkat yang menghapus ikatannya.
Penggunaan Bluetooth API memerlukan
deklarasi beberapa izin
dalam file manifes Anda. Setelah aplikasi Anda memiliki izin untuk menggunakan Bluetooth, aplikasi Anda
perlu mengakses
BluetoothAdapter
dan
menentukan apakah Bluetooth tersedia di perangkat.
Jika Bluetooth tersedia, ada tiga langkah untuk membuat koneksi:
- Temukan perangkat Bluetooth di sekitar, baik perangkat yang sudah disambungkan maupun yang baru.
- Menghubungkan ke perangkat Bluetooth.
- Transfer data dengan perangkat terhubung.
Perangkat tertentu menggunakan profil Bluetooth tertentu yang mendeklarasikan data yang disediakannya.
Class dan antarmuka utama
Semua Bluetooth API tersedia dalam
paket android.bluetooth
.
Berikut adalah class dan antarmuka yang diperlukan untuk membuat
koneksi Bluetooth:
BluetoothAdapter
- Merepresentasikan adaptor Bluetooth lokal (radio Bluetooth).
BluetoothAdapter
adalah titik entri untuk semua interaksi Bluetooth. Dengan ini, Anda dapat menemukan perangkat Bluetooth lainnya, membuat kueri daftar perangkat terikat (berpasangan), membuat instanceBluetoothDevice
menggunakan alamat MAC yang dikenal, dan membuatBluetoothServerSocket
untuk memproses komunikasi dari perangkat lain. BluetoothDevice
- Merepresentasikan perangkat Bluetooth jarak jauh. Gunakan metode ini untuk meminta koneksi dengan
perangkat jarak jauh melalui
BluetoothSocket
atau mengkueri informasi tentang perangkat seperti nama, alamat, class, dan status ikatan. BluetoothSocket
- Merepresentasikan antarmuka untuk soket Bluetooth (mirip dengan TCP
Socket
). Ini adalah titik koneksi yang memungkinkan aplikasi bertukar data dengan perangkat Bluetooth lain menggunakanInputStream
danOutputStream
. BluetoothServerSocket
- Merepresentasikan soket server terbuka yang memproses permintaan masuk (mirip
dengan
ServerSocket
TCP). Agar dapat menghubungkan dua perangkat, satu perangkat harus membuka soket server dengan class ini. Saat perangkat Bluetooth jarak jauh membuat permintaan koneksi ke perangkat ini, perangkat akan menerima koneksi tersebut, lalu menampilkanBluetoothSocket
yang terhubung. BluetoothClass
- Menjelaskan karakteristik umum dan kemampuan perangkat Bluetooth. Ini adalah kumpulan properti hanya baca yang menentukan class dan layanan perangkat. Meskipun informasi ini memberikan petunjuk yang berguna mengenai jenis perangkat, atribut class ini tidak selalu menjelaskan semua profil dan layanan Bluetooth yang didukung perangkat.
BluetoothProfile
- Antarmuka yang merepresentasikan profil Bluetooth. Profil Bluetooth adalah spesifikasi antarmuka nirkabel untuk komunikasi berbasis Bluetooth antar-perangkat. Contohnya adalah profil Hands-Free. Untuk diskusi selengkapnya tentang profil, lihat profil Bluetooth.
BluetoothHeadset
- Menyediakan dukungan untuk headset Bluetooth yang akan digunakan dengan ponsel. Ini mencakup profil Bluetooth Headset dan profil Hands-Free (v1.5).
BluetoothA2dp
- Menentukan cara streaming audio berkualitas tinggi dapat di-streaming dari satu perangkat ke perangkat lainnya melalui koneksi Bluetooth menggunakan Advanced Audio Distribution Profile (A2DP).
BluetoothHealth
- Merepresentasikan proxy Health Device Profile yang mengontrol layanan Bluetooth.
BluetoothHealthCallback
- Class abstrak yang Anda gunakan untuk menerapkan callback
BluetoothHealth
. Anda harus memperluas class ini dan menerapkan metode callback untuk menerima update tentang perubahan status pendaftaran aplikasi dan status saluran Bluetooth. BluetoothHealthAppConfiguration
- Merepresentasikan konfigurasi aplikasi yang didaftarkan aplikasi pihak ketiga Bluetooth Health untuk berkomunikasi dengan perangkat kesehatan Bluetooth jarak jauh.
BluetoothProfile.ServiceListener
- Antarmuka yang memberi tahu klien komunikasi antarproses (IPC)
BluetoothProfile
saat mereka telah terhubung atau terputus dari layanan internal yang menjalankan profil tertentu.