Bluetooth năng lượng thấp

Bluetooth năng lượng thấp (BLE) có trong Android 4.3 trở lên, tạo các kết nối ngắn giữa các thiết bị để truyền các chuỗi dữ liệu. BLE vẫn ở chế độ ngủ khi không kết nối. Điều này cho phép BLE cung cấp băng thông thấp hơn và giảm mức tiêu thụ điện năng so với Bluetooth thông thường. BLE là lựa chọn lý tưởng cho các ứng dụng như thiết bị theo dõi nhịp tim hoặc bàn phím không dây. Để sử dụng BLE, các thiết bị cần có một bộ vi mạch hỗ trợ BLE.

Triển khai

Tất cả các hồ sơ ứng dụng BLE hiện tại đều dựa trên Hồ sơ thuộc tính chung (GATT). Khi một thiết bị chạy Android tương tác với một thiết bị BLE, thiết bị gửi thông tin là máy chủ và thiết bị nhận thông tin là máy khách. Android có các API dành cho nhà phát triển cho BLE, bao gồm cả API cho các hoạt động tương tác giữa máy chủ GATT và ứng dụng GATT. Để tận dụng tối đa các API BLE, hãy triển khai Yêu cầu về HCI Bluetooth trên Android.

Chế độ thiết bị

Khi dùng BLE, một thiết bị chạy Android có thể đóng vai trò là thiết bị ngoại vi, thiết bị trung tâm hoặc cả hai. Chế độ ngoại vi cho phép các thiết bị gửi các gói quảng cáo. Chế độ trung tâm cho phép các thiết bị quét tìm quảng cáo. Một thiết bị Android đóng vai trò là cả thiết bị ngoại vi và thiết bị trung tâm có thể giao tiếp với các thiết bị ngoại vi BLE khác trong khi gửi quảng cáo ở chế độ ngoại vi. Các thiết bị hỗ trợ Bluetooth 4.1 trở xuống chỉ có thể sử dụng BLE ở chế độ trung tâm. Các chipset cũ của thiết bị có thể không hỗ trợ chế độ thiết bị ngoại vi BLE.

Quét tìm thiết bị BLE

Thiết bị chạy Android có thể nhắm đến và quét các thiết bị Bluetooth cụ thể một cách hiệu quả hơn khi sử dụng BLE. API BLE cho phép nhà phát triển ứng dụng tạo bộ lọc để tìm thiết bị mà không cần nhiều sự tham gia của bộ điều khiển máy chủ.

Quét vị trí

Các dịch vụ vị trí của thiết bị có thể dùng Bluetooth để phát hiện các thiết bị Bluetooth và cung cấp thông tin vị trí chính xác hơn. Sau đây là cách người dùng bật tính năng này:

  1. Chuyển đến phần Cài đặt > Bảo mật và vị trí > Vị trí.
  2. Kiểm tra để đảm bảo nút bật/tắt Vị trí đang ở vị trí Bật.
  3. Chuyển đến Chế độ.
  4. Chọn chế độ Độ chính xác cao hoặc Tiết kiệm pin.

Trong Android 11 trở xuống, các ứng dụng riêng lẻ cần có quyền truy cập thông tin vị trí để sử dụng tính năng quét BLE, ngay cả khi chúng chỉ quét để tìm các thiết bị cần kết nối. Nếu người dùng tắt tính năng quét vị trí hoặc không cấp cho ứng dụng quyền truy cập thông tin vị trí, thì ứng dụng sẽ không nhận được kết quả quét BLE nào.

Trong Android 12 trở lên, các quyền BLUETOOTH_SCAN, BLUETOOTH_ADVERTISEBLUETOOTH_CONNECT có thể cho phép các ứng dụng quét tìm thiết bị ở gần mà không cần yêu cầu quyền truy cập vị trí. Để biết thêm thông tin, hãy xem phần Quyền Bluetooth.

Người dùng có thể tắt tính năng quét Bluetooth ở chế độ nền trên hệ thống bằng cách chuyển đến phần Cài đặt > Bảo mật và vị trí > Vị trí > Quét rồi nhấp vào nút bật/tắt Quét Bluetooth để chuyển sang vị trí tắt. Điều này không ảnh hưởng đến hoạt động quét BLE để tìm vị trí hoặc thiết bị cục bộ.

Lọc kết quả quét

Android 6.0 trở lên có tính năng quét BLE và so khớp bộ lọc trên bộ điều khiển Bluetooth. Thiết bị có thể lọc kết quả quét và báo cáo các sự kiện đã tìm thấybị mất liên quan đến các thiết bị BLE cho bộ xử lý ứng dụng (AP). Tính năng lọc cũng hoạt động đối với các lần quét hàng loạt, giúp tiết kiệm pin vì thiết bị sẽ chuyển hoạt động quét BLE sang chương trình cơ sở. Quá trình quét theo lô giúp giảm tần suất AP đánh thức do BLE quét tìm thiết bị hoặc đèn hiệu.

Tính năng OnFound/OnLost được triển khai trong bộ điều khiển Bluetooth, sau đó được kiểm thử để xác nhận rằng các thiết bị BLE không bị bỏ sót trong quá trình quét. Điều này giúp tiết kiệm năng lượng và cũng có thể mang lại những lợi ích sau:

  • Đối với sự kiện OnFound, AP chính sẽ thức dậy khi phát hiện thấy một thiết bị cụ thể.
  • Đối với sự kiện OnLost, AP sẽ thức khi không tìm thấy một thiết bị cụ thể.
  • Các ứng dụng khung nhận được ít thông báo không mong muốn hơn khi có một thiết bị ở gần trong phạm vi.
  • Tính năng quét liên tục cho phép các ứng dụng khung được thông báo khi thiết bị nằm ngoài phạm vi.

Bộ lọc quét có thể dựa trên việc phát hiện quảng cáo của thiết bị (sự kiện OnFound). Lớp Java có thể chỉ định các thông số như lần phát hiện đầu tiên (hoặc một số lượng quảng cáo được chỉ định kể từ lần phát hiện đầu tiên). Triển khai tính năng lọc BLE bằng lệnh HCI Bộ lọc nội dung gói quảng cáo.