Android menyediakan dukungan platform bawaan untuk Bluetooth Hemat Energi (BLE) sebagai peran pusat dan menyediakan API yang dapat digunakan aplikasi untuk menemukan perangkat, meminta layanan, dan mengirimkan informasi.
Kasus penggunaan umum meliputi:
- Mentransfer sejumlah kecil data antar-perangkat terdekat.
- Berinteraksi dengan sensor kedekatan untuk memberi pengguna pengalaman khusus berdasarkan lokasi mereka saat ini.
Berbeda dengan Bluetooth klasik, BLE dirancang untuk konsumsi daya yang jauh lebih rendah. Hal ini memungkinkan aplikasi berkomunikasi dengan perangkat BLE yang memiliki persyaratan daya yang lebih ketat, seperti sensor kedekatan, pemantau detak jantung, dan perangkat kebugaran.
Perhatian: Saat pengguna menyambungkan perangkatnya dengan perangkat lain menggunakan BLE, data yang dikomunikasikan antara kedua perangkat dapat diakses oleh semua aplikasi di perangkat pengguna.
Karena alasan ini, jika aplikasi Anda mengambil data sensitif, Anda harus menerapkan keamanan lapisan aplikasi untuk melindungi privasi data tersebut.
Dasar-dasar
Agar perangkat yang kompatibel dengan BLE dapat mengirimkan data satu sama lain, perangkat tersebut harus membentuk saluran komunikasi terlebih dahulu. Penggunaan Bluetooth LE API mengharuskan Anda
mendeklarasikan beberapa izin
dalam file manifes. Setelah aplikasi memiliki izin untuk menggunakan Bluetooth, aplikasi
harus mengakses BluetoothAdapter
dan
menentukan apakah Bluetooth tersedia di perangkat
Jika Bluetooth tersedia, perangkat akan
memindai perangkat BLE di sekitar.
Setelah perangkat ditemukan, kemampuan perangkat BLE akan ditemukan dengan
terhubung ke server GATT di perangkat BLE.
Setelah koneksi dibuat,
data dapat ditransfer dengan perangkat yang terhubung
berdasarkan layanan dan karakteristik yang tersedia.
Istilah dan konsep utama
Berikut adalah ringkasan istilah dan konsep BLE utama:
- Profil Atribut Generik (GATT)
- Profil GATT adalah spesifikasi umum untuk mengirim dan menerima potongan data pendek yang dikenal sebagai "atribut" melalui link BLE. Semua profil aplikasi BLE saat ini didasarkan pada GATT. Tinjau contoh Android BluetoothLeGatt di GitHub untuk mempelajari lebih lanjut.
- Profil
- Bluetooth SIG menentukan banyak profil untuk perangkat BLE. Profil adalah spesifikasi untuk cara kerja perangkat dalam aplikasi tertentu. Perhatikan bahwa perangkat dapat menerapkan lebih dari satu profil. Misalnya, perangkat dapat berisi monitor detak jantung dan detektor level baterai.
- Attribute Protocol (ATT)
- GATT dibuat di atas Attribute Protocol (ATT). Hal ini juga disebut sebagai GATT/ATT. ATT dioptimalkan untuk dijalankan pada perangkat BLE. Untuk tujuan ini, DHCP menggunakan sesedikit mungkin {i>byte<i}. Setiap atribut diidentifikasi secara unik oleh Universally Unique Identifier (UUID), yang merupakan format 128-bit terstandardisasi untuk ID string yang digunakan untuk mengidentifikasi informasi secara unik. Atribut yang ditransmisikan oleh ATT diformat sebagai karakteristik dan layanan.
- Karakteristik
- Karakteristik berisi nilai tunggal dan deskriptor 0-n yang menjelaskan nilai karakteristik. Karakteristik dapat dianggap sebagai jenis, yang analog dengan class.
- Deskripsi
- Deskriptor adalah atribut yang didefinisikan yang menjelaskan nilai karakteristik. Misalnya, deskriptor dapat menentukan deskripsi yang dapat dibaca manusia, rentang yang dapat diterima untuk nilai karakteristik, atau unit pengukuran yang khusus untuk nilai karakteristik.
- Layanan
- Layanan adalah kumpulan karakteristik. Misalnya, Anda dapat memiliki layanan yang disebut "Pemantau Denyut Jantung" yang mencakup karakteristik seperti "pengukuran detak jantung". Anda dapat menemukan daftar profil dan layanan berbasis GATT yang ada di bluetooth.org.
Peran dan tanggung jawab
Saat perangkat berinteraksi dengan perangkat BLE, peran dan tanggung jawab dibagi dengan dua cara yang berbeda:
Sentral versus periferal. Hal ini berlaku untuk koneksi BLE itu sendiri—perangkat dalam peran sentral memindai, mencari iklan, dan perangkat dalam peran periferal mengiklankan. Dua perangkat yang hanya mendukung peran periferal tidak dapat saling berkomunikasi, begitu juga dua perangkat yang hanya mendukung peran sentral.
Server GATT versus klien GATT. Ini menentukan cara kedua perangkat berkomunikasi satu sama lain setelah berhasil membuat koneksi. Perangkat dalam peran klien mengirimkan permintaan data, dan perangkat dalam peran server memenuhinya.
Untuk memahami perbedaan antara pembagian peran pusat-periferal dan server-klien, pertimbangkan contoh saat Anda memiliki ponsel Android dan pelacak aktivitas yang kompatibel dengan BLE yang melaporkan data sensor kembali ke ponsel.
Ponsel—perangkat pusat—secara aktif memindai perangkat BLE. Pelacak aktivitas—perangkat periferal—mengumumkan dan menunggu untuk menerima permintaan koneksi.
Setelah ponsel dan pelacak aktivitas membuat koneksi, mereka mulai mentransfer metadata GATT satu sama lain. Dalam hal ini, aplikasi yang berjalan di ponsel mengirimkan permintaan data, sehingga bertindak sebagai klien GATT. Pelacak aktivitas memenuhi permintaan tersebut, sehingga bertindak sebagai server GATT.
Desain alternatif aplikasi mungkin melibatkan ponsel yang memainkan peran server
GATT. Lihat
BluetoothGattServer
untuk
mengetahui informasi selengkapnya.