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 truyền thống. Đâ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, 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. Để 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, 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ế độ thiết bị 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 quảng cáo. Một thiết bị chạy Android đóng vai trò 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ế độ thiết bị 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í
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:
- Chuyển đến phần Cài đặt > Bảo mật và vị trí > Vị trí.
- Kiểm tra để đảm bảo nút bật/tắt Vị trí đang ở vị trí Bật.
- Chuyển đến phần Chế độ.
- 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.
Kể từ Android 12, 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 vị trí.
Để biết thêm thông tin, hãy xem bài viết
Quyền Bluetooth mới trong Android 12.
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 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 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ấy và bị 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 theo lô, giúp tiết kiệm pin vì quá trình quét BLE được chuyển sang chương trình cơ sở. Tính năng quét theo lô giúp giảm tần suất AP thức dậy do quét BLE để tìm thiết bị hoặc beacon.
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ỏ 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 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.
- 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 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 nhất đị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.