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 ra các kết nối ngắn giữa các thiết bị để truyền các luồng dữ liệu. BLE vẫn ở chế độ ngủ khi không được 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. Đây 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, thiết bị cần có một chipset hỗ trợ BLE.

Triển khai

Tất 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ị 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à ứng dụng. Android bao gồm API dành cho nhà phát triển cho BLE, bao gồm cả API để tương tác giữa máy chủ GATT và ứng dụng GATT. Để khai thác tối đa các API BLE, hãy triển khai Yêu cầu về HCI Bluetooth của Android.

Chế độ thiết bị

Khi sử dụng BLE, thiết bị 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 thiết bị gửi gói quảng cáo. Chế độ trung tâm cho phép 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 thiết bị cũ có thể không hỗ trợ chế độ thiết bị ngoại vi BLE.

Quét tìm BLE

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

Quét vị trí

Dịch vụ vị trí của thiết bị có thể sử dụng Bluetooth để phát hiện beacon Bluetooth và cung cấp thông tin vị trí chính xác hơn. Dưới đâ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 Bật/Tắt của tính năng Vị trí đang ở 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.

Trên 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 thiết bị 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 quyền truy cập thông tin vị trí cho ứng dụng, thì ứng dụng sẽ không nhận được kết quả quét BLE nào.

Kể từ Android 12, các quyền BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE BLUETOOTH_CONNECT có thể cho phép ứ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 mới về Bluetooth trong Android 12.

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

Lọc kết quả quét

Android 6.0 trở lên bao gồm tính năng quét BLE và so khớp bộ lọc trên tay điều khiển Bluetooth. Một 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ấyđã 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ì tính năng quét BLE được chuyển sang phần mềm. Tính năng quét hàng loạt giúp giảm tần suất AP thức dậy do quét BLE cho các thiết bị hoặc beacon.

Tính năng OnFound/OnLost được triển khai trong tay đ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ỏ lỡ trong quá trình quét. Điều này giúp tiết kiệm điện nă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 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 sẽ nhận được ít thông báo không mong muốn hơn khi có 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 cách sử dụng lệnh HCI Bộ lọc nội dung gói quảng cáo.