Bluetooth Low Energy

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.