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 kết nối ngắn giữa các thiết bị để truyền dữ liệu theo từng đợt. 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 cổ điển. 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 chipset 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 bao gồm 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à máy khách GATT. Để tận dụng tối đa các API BLE, hãy triển khai Yêu cầu HCI Bluetooth của Android.

Chế độ thiết bị

Khi sử dụng BLE, một thiết bị chạy Android có thể hoạt động như một thiết bị ngoại vi, một thiết bị trung tâm hoặc cả hai. Chế độ ngoại vi cho phép các thiết bị gửi 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 hoạt động vừa là thiết bị ngoại vi vừa là 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. Chipset của thiết bị cũ có thể không hỗ trợ chế độ ngoại vi BLE.

Quét tìm BLE

Một thiết bị chạy Android có thể nhắm mục tiêu và quét tìm 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 sự tham gia nhiều của bộ điều khiển máy chủ.

Quét tìm vị trí

Dịch vụ vị trí của thiết bị có thể sử dụng Bluetooth để phát hiện đèn hiệu Bluetooth và cung cấp 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 chuyển Bật/Tắt Vị trí ở vị trí Bật.
  3. Chuyển đến phầ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ẻ yêu cầu quyền truy cập vào vị trí để sử dụng quá trình quét tìm BLE, ngay cả khi các ứng dụng đó chỉ quét tìm để kết nối với thiết bị. Nếu người dùng tắt quá trình quét tìm vị trí hoặc không cấp quyền truy cập vào vị trí cho ứng dụng, thì ứng dụng đó sẽ không nhận được kết quả quét tìm BLE.

Trong Android 12 trở lên, các quyền BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, và BLUETOOTH_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 thông tin vị trí. Để biết thêm thông tin, hãy xem bài viết Quyền truy cập vào Bluetooth.

Người dùng có thể tắt quá trình quét tìm Bluetooth ở chế độ nền ở cấp 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 tìm rồi nhấp vào nút chuyển Quét tìm Bluetooth để chuyển sang vị trí tắt. Điều này không ảnh hưởng đến quá trình quét tìm BLE cho vị trí hoặc thiết bị cục bộ.

Lọc kết quả quét tìm

Android 6.0 trở lên bao gồm quá trình quét tìm BLE và so khớp bộ lọc trên bộ điều khiển Bluetooth. Một thiết bị có thể lọc kết quả quét tìm 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). Quá trình lọc cũng hoạt động đối với các lần quét theo lô, giúp tiết kiệm pin vì thiết bị chuyển quá trình quét tìm BLE sang phần sụn. Các lần quét theo lô làm giảm tần suất AP thức dậy do quá trình quét tìm BLE cho 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 rồi đượ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 tìm. Điều này giúp tiết kiệm pin 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 một thiết bị cụ thể.
  • Đối với sự kiện OnLost, AP sẽ thức dậy 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 một thiết bị ở gần nằm trong phạm vi.
  • Các lần quét liên tục cho phép các ứng dụng khung được thông báo khi một thiết bị nằm ngoài phạm vi.

Bộ lọc quét tìm có thể dựa trên việc phát hiện quảng cáo của một thiết bị (sự kiện OnFound). Lớp Java có thể chỉ định các tham 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 quá trình lọc BLE bằng lệnh HCI Bộ lọc nội dung gói quảng cáo.