Bluetooth Low Energy

Android memberikan dukungan platform bawaan untuk Bluetooth Hemat Energi (BLE) dalam peran terpusat dan menyediakan API yang dapat digunakan aplikasi untuk menemukan perangkat, membuat kueri layanan, dan mengirimkan informasi.

Kasus penggunaan umum meliputi:

  • Mentransfer sejumlah kecil data antar-perangkat terdekat.
  • Berinteraksi dengan sensor kedekatan untuk memberi pengguna pengalaman yang disesuaikan 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: Jika pengguna menyambungkan perangkat dengan perangkat lain menggunakan BLE, data yang dikomunikasikan antara kedua perangkat dapat diakses oleh semua aplikasi di perangkat pengguna.

Oleh karena itu, jika aplikasi Anda mengambil data sensitif, Anda harus mengimplementasikan keamanan lapisan aplikasi untuk melindungi privasi data tersebut.

Dasar-dasar

Agar perangkat yang berkemampuan BLE dapat mengirimkan data satu sama lain, perangkat tersebut harus terlebih dahulu membentuk saluran komunikasi. Penggunaan Bluetooth LE API mengharuskan Anda mendeklarasikan beberapa izin dalam file manifes. Setelah aplikasi Anda memiliki izin untuk menggunakan Bluetooth, aplikasi Anda perlu 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 ditemukan dengan menghubungkan ke server GATT pada perangkat BLE. Setelah koneksi dibuat, data dapat ditransfer dengan perangkat terhubung berdasarkan layanan dan karakteristik yang tersedia.

Istilah dan konsep utama

Berikut adalah ringkasan istilah dan konsep utama BLE:

  • Profil Atribut Generik (GATT)
    Profil GATT adalah spesifikasi umum untuk mengirim dan menerima bagian pendek data 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 cara kerja perangkat di aplikasi tertentu. Perhatikan bahwa perangkat dapat menerapkan lebih dari satu profil. Misalnya, perangkat dapat berisi pemantau detak jantung dan detektor level baterai.
  • Protokol Atribut (ATT)
    GATT dibuat berdasarkan Protokol Atribut (ATT). Hal ini juga disebut sebagai GATT/ATT. ATT dioptimalkan untuk dijalankan pada perangkat BLE. Untuk mencapai tujuan tersebut, digunakan sesedikit mungkin byte. 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 dipindahkan oleh ATT diformat sebagai karakteristik dan layanan.
  • Karakteristik
    Karakteristik berisi satu nilai dan deskripsi 0-n yang menjelaskan nilai karakteristik. Karakteristik dapat dianggap sebagai jenis, analog dengan class.
  • Deskripsi
    Deskripsi adalah atribut yang ditentukan yang mendeskripsikan nilai karakteristik. Misalnya, deskripsi mungkin menentukan deskripsi yang dapat dibaca manusia, rentang yang dapat diterima untuk nilai karakteristik, atau unit ukuran yang khusus untuk nilai karakteristik.
  • Layanan
    Layanan adalah kumpulan karakteristik. Misalnya, Anda dapat memiliki layanan yang disebut "Pemantau Detak Jantung" yang mencakup karakteristik seperti "pengukuran detak jantung". Anda dapat menemukan daftar profil dan layanan berbasis GATT yang sudah ada di bluetooth.org.

Peran dan tanggung jawab

Peran dan tanggung jawab berikut berlaku saat perangkat berinteraksi dengan perangkat BLE:

  • Sentral versus periferal. Ini berlaku untuk koneksi BLE itu sendiri. Perangkat dalam peran sentral memindai, mencari iklan, dan perangkat dalam peran periferal membuat iklan.

  • Server GATT versus klien GATT. Ini menentukan bagaimana dua perangkat saling berkomunikasi setelah tersambung. Untuk memahami perbedaannya, bayangkan Anda memiliki ponsel Android dan pelacak aktivitas yang merupakan perangkat BLE. Ponsel mendukung peran sentral; pelacak aktivitas mendukung peran periferal. Untuk membuat koneksi BLE, Anda memerlukan salah satunya. Dua hal yang hanya mendukung periferal tidak dapat berkomunikasi satu sama lain, juga dua hal yang hanya mendukung sentral.

Setelah ponsel dan pelacak aktivitas membuat koneksi, mereka mulai mentransfer metadata GATT satu sama lain. Bergantung pada jenis data yang ditransfer, salah satu atau yang lainnya mungkin bertindak sebagai server. Misalnya, jika pelacak aktivitas ingin melaporkan data sensor ke ponsel, mungkin wajar jika pelacak aktivitas bertindak sebagai server. Jika pelacak aktivitas ingin menerima update dari ponsel, ponsel tersebut mungkin dapat bertindak sebagai server.

Pada contoh yang digunakan dalam topik ini, aplikasi (yang berjalan di perangkat Android) adalah klien GATT. Aplikasi ini mendapatkan data dari server GATT, yang merupakan monitor detak jantung BLE yang mendukung Profil Detak Jantung. Anda juga dapat mendesain aplikasi untuk memainkan peran server GATT. Lihat BluetoothGattServer untuk informasi selengkapnya.