Android cung cấp tính năng hỗ trợ nền tảng tích hợp sẵn cho Bluetooth năng lượng thấp (BLE) đóng vai trò trung tâm và cung cấp các API mà ứng dụng có thể dùng để khám phá thiết bị, truy vấn dịch vụ và truyền thông tin.
Sau đây là các trường hợp sử dụng phổ biến:
- Chuyển một lượng nhỏ dữ liệu giữa các thiết bị ở gần.
- Tương tác với cảm biến độ gần để mang đến cho người dùng trải nghiệm tuỳ chỉnh dựa trên vị trí hiện tại của họ.
Trái ngược với Bluetooth cũ, BLE được thiết kế để giảm đáng kể mức tiêu thụ điện năng. Điều này cho phép các ứng dụng giao tiếp với các thiết bị BLE có yêu cầu nghiêm ngặt hơn về nguồn điện, chẳng hạn như cảm biến khoảng cách gần, máy đo nhịp tim và thiết bị thể dục.
Thận trọng: Khi người dùng ghép nối thiết bị của họ với một thiết bị khác bằng BLE, tất cả ứng dụng trên thiết bị của người dùng đều có thể truy cập vào dữ liệu được giao tiếp giữa hai thiết bị.
Vì lý do này, nếu ứng dụng của bạn ghi lại dữ liệu nhạy cảm, bạn nên triển khai bảo mật lớp ứng dụng để bảo vệ quyền riêng tư của dữ liệu đó.
Thông tin cơ bản
Để các thiết bị hỗ trợ BLE truyền dữ liệu giữa nhau, trước tiên, các thiết bị đó phải tạo thành một kênh liên lạc. Để sử dụng API Bluetooth LE, bạn phải khai báo một số quyền trong tệp kê khai. Sau khi có quyền sử dụng Bluetooth, ứng dụng của bạn sẽ cần truy cập vào BluetoothAdapter
và xác định xem có Bluetooth trên thiết bị hay không Nếu có Bluetooth, thiết bị sẽ quét tìm các thiết bị BLE ở gần.
Sau khi tìm thấy một thiết bị, bạn có thể phát hiện các khả năng của thiết bị BLE bằng cách kết nối với máy chủ GATT trên thiết bị BLE.
Sau khi kết nối, dữ liệu có thể được chuyển cùng với thiết bị đã kết nối dựa trên các dịch vụ và đặc điểm có sẵn.
Các thuật ngữ và khái niệm chính
Sau đây là bản tóm tắt các thuật ngữ và khái niệm chính về BLE:
- Hồ sơ thuộc tính chung (GATT)
- Hồ sơ GATT là thông số kỹ thuật chung để gửi và nhận các phần dữ liệu ngắn, hay còn gọi là "thuộc tính" qua đường liên kết BLE. Tất cả hồ sơ ứng dụng BLE hiện tại đều dựa trên GATT. Xem mẫu Android BluetoothLeGatt trên GitHub để tìm hiểu thêm.
- Hồ sơ
- Bluetooth SIG xác định nhiều hồ sơ cho các thiết bị BLE. Hồ sơ là thông số kỹ thuật về cách hoạt động của thiết bị trong một ứng dụng cụ thể. Xin lưu ý rằng một thiết bị có thể triển khai nhiều hồ sơ. Ví dụ: một thiết bị có thể chứa thiết bị đo nhịp tim và trình phát hiện mức pin.
- Giao thức thuộc tính (ATT)
- GATT được xây dựng dựa trên Giao thức thuộc tính (ATT). Điều này còn được gọi là GATT/ATT. ATT được tối ưu hoá để chạy trên các thiết bị BLE. Để đạt được mục tiêu này, mô-đun này sẽ sử dụng ít byte nhất có thể. Mỗi thuộc tính được xác định duy nhất bằng một Giá trị nhận dạng duy nhất trên toàn cầu (UUID). Đây là định dạng 128 bit chuẩn cho mã nhận dạng chuỗi dùng để xác định thông tin duy nhất. Các thuộc tính do ATT truyền tải có định dạng là đặc điểm và dịch vụ.
- Đặc điểm
- Một đặc điểm chứa một giá trị duy nhất và mã mô tả 0-n để mô tả giá trị của đặc điểm đó. Một đặc điểm có thể được coi là một kiểu, tương tự với một lớp.
- Phần mô tả
- Chỉ số mô tả là các thuộc tính đã xác định, dùng để mô tả một giá trị đặc điểm. Ví dụ: phần mô tả có thể chỉ định nội dung mô tả mà con người có thể đọc được, phạm vi được chấp nhận cho giá trị của một đặc điểm hoặc đơn vị đo lường dành riêng cho giá trị của một đặc điểm.
- Dịch vụ
- Dịch vụ là một tập hợp các đặc điểm. Ví dụ: bạn có thể dùng một dịch vụ có tên là "Nhịp tim" có chứa các đặc điểm như "đo lường nhịp tim". Bạn có thể tìm thấy danh sách các dịch vụ và hồ sơ dựa trên GATT hiện có trên bluetooth.org.
Vai trò và trách nhiệm
Các vai trò và trách nhiệm sau đây áp dụng khi một thiết bị tương tác với thiết bị BLE:
Trung tâm so với thiết bị ngoại vi. Điều này áp dụng cho chính kết nối BLE. Thiết bị đóng vai trò trung tâm quét, tìm kiếm quảng cáo và thiết bị ở vai trò ngoại vi tạo quảng cáo.
Máy chủ GATT so với ứng dụng GATT. Phương thức này xác định cách 2 thiết bị giao tiếp với nhau sau khi thiết lập kết nối. Để hiểu về sự khác biệt, hãy tưởng tượng rằng bạn có một chiếc điện thoại Android và trình theo dõi hoạt động là một thiết bị BLE. Điện thoại hỗ trợ vai trò trung tâm; công cụ theo dõi hoạt động hỗ trợ vai trò ngoại vi. Để thiết lập kết nối BLE, bạn cần có từng kết nối. Hai thiết bị chỉ hỗ trợ thiết bị ngoại vi không thể giao tiếp với nhau và hai thiết bị chỉ hỗ trợ trung tâm.
Sau khi điện thoại và trình theo dõi hoạt động đã thiết lập kết nối, chúng sẽ bắt đầu chuyển siêu dữ liệu GATT sang nhau. Tuỳ thuộc vào loại dữ liệu mà chúng chuyển, một trong hai hệ thống có thể đóng vai trò là máy chủ. Ví dụ: nếu trình theo dõi hoạt động muốn báo cáo dữ liệu cảm biến cho điện thoại, thì việc trình theo dõi hoạt động đóng vai trò là máy chủ có thể là điều hợp lý. Nếu trình theo dõi hoạt động muốn nhận bản cập nhật từ điện thoại, thì điện thoại đóng vai trò là máy chủ là hợp lý.
Trong ví dụ dùng trong chủ đề này, ứng dụng (chạy trên thiết bị Android) là ứng dụng GATT. Ứng dụng nhận dữ liệu từ máy chủ GATT. Đây là thiết bị theo dõi nhịp tim BLE hỗ trợ Heart rate Profile (Hồ sơ nhịp tim).
Ngoài ra, bạn có thể thiết kế ứng dụng để đóng vai trò trên máy chủ GATT. Hãy xem BluetoothGattServer
để biết thêm thông tin.