Bluetooth năng lượng thấp

Bluetooth Low Energy (BLE), có sẵn 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. 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. Nó lý tưởng cho các ứng dụng như máy đo nhịp tim hoặc bàn phím không dây. Để sử dụng BLE, thiết bị cần có chipset hỗ trợ BLE.

Thực hiện

Tất cả các cấu hình ứng dụng BLE hiện tại đều dựa trên Cấu hình thuộc tính chung (GATT). Khi thiết bị Android tương tác với 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ác API dành cho tương tác giữa máy chủ GATT và máy khách GATT. Để tận dụng tối đa 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, thiết bị Android có thể hoạt động như một 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 hoạt động như một thiết bị ngoại vi và 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ở về trước chỉ có thể sử dụng BLE ở chế độ trung tâm. Chipset thiết bị cũ hơn có thể không hỗ trợ chế độ ngoại vi BLE.

Quét BLE

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

Quét vị trí

Dịch vụ định vị 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. Đây là cách người dùng kích hoạt tính năng này:

  1. Đi tới Cài đặt > Bảo mật & Vị trí > Vị trí .
  2. Kiểm tra xem nút bật / tắt vị trí có ở vị trí Bật hay không .
  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ẻ yêu cầu quyền truy cập vị trí để sử dụng chức năng quét BLE, ngay cả khi chúng chỉ quét để tìm thiết bị cần kết nối. Nếu người dùng tắt chức năng quét vị trí hoặc không cấp quyền vị trí cho ứng dụng thì ứng dụng sẽ không nhận được bất kỳ kết quả quét BLE nào.

Từ Android 12, các quyền BLUETOOTH_SCAN , BLUETOOTH_ADVERTISEBLUETOOTH_CONNECT có thể cho phép ứng dụng quét tìm các 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 Quyền Bluetooth mới trong Android 12 .

Người dùng có thể tắt tính năng quét nền Bluetooth ở cấp hệ thống bằng cách đi tới Cài đặt > Bảo mật & Vị trí > Vị trí > Quét và tắt nút chuyển đổi để quét Bluetooth . Điều này không ảnh hưởng đến quá trình 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 bao gồm tính năng quét BLE và 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 và báo cáo các sự kiện được tìm thấybị mất liên quan đến 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 quét hàng loạt, giúp tiết kiệm năng lượng khi quá trình quét BLE được tải xuống chương trình cơ sở. Quét hàng loạt giúp giảm tần suất AP thức dậy do quét BLE để 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 và sau đó được kiểm tra để 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 đ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 ra 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 có thiết bị ở gần trong phạm vi phủ só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 phủ sóng.

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