Android 13 và Wear OS 4 giới thiệu một cách để các ứng dụng truy cập vào cảm biến cơ thể, chẳng hạn như làm tần số tim, ở chế độ nền. Mô hình truy cập mới này tương tự như mô hình ra mắt tính năng quyền truy cập thông tin vị trí ở chế độ nền trong Android 10 (API cấp 29).
Nếu ứng dụng của bạn cần truy cập vào thông tin của cảm biến cơ thể ở chế độ nền, chẳng hạn như khi theo dõi dữ liệu Dịch vụ sức khoẻ ở chế độ nền, thì bạn phải yêu cầu quyền BODY_SENSORS_BACKGROUND
.
Như đã mô tả trên trang các phương pháp hay nhất về quyền riêng tư, ứng dụng chỉ nên yêu cầu cấp quyền BODY_SENSORS_BACKGROUND
khi quyền đó quan trọng đối với tính năng giao diện người dùng, đồng thời ứng dụng phải công bố thông tin này đúng cách cho người dùng.
Quy trình cấp quyền này phụ thuộc vào phiên bản SDK mục tiêu của ứng dụng.
Ứng dụng nhắm đến Android 13 trở lên
Ngoài quyền BODY_SENSORS
hiện có, hãy khai báo quyền BODY_SENSORS_BACKGROUND
trong tệp kê khai:
<uses-permission android:name="android.permission.BODY_SENSORS">
<uses-permission android:name="android.permission.BODY_SENSORS_BACKGROUND">
Sau đó, ứng dụng phải yêu cầu cấp quyền trong các hoạt động riêng biệt:
- Kiểm tra xem
BODY_SENSORS
đã được cấp hay chưa. Nếu chưa, hãy yêu cầu cấp quyền. - Kiểm tra xem
BODY_SENSORS_BACKGROUND
đã được cấp hay chưa. Nếu chưa, hãy yêu cầu cấp quyền.
Thận trọng: Nếu ứng dụng của bạn yêu cầu cả hai quyền đối với cảm biến cơ thể cùng một lúc, thì hệ thống sẽ bỏ qua yêu cầu đó và không cấp quyền nào cho ứng dụng.
Trên Android 13 (API cấp 33) trở lên, hộp thoại cấp quyền khi bắt đầu chạy không bao gồm tuỳ chọn "Luôn cho phép". Thay vào đó, người dùng phải luôn bật quyền truy cập vào cảm biến nền trong phần cài đặt hệ thống, như minh hoạ trong hình 1. Khi yêu cầu quyền BODY_SENSORS_BACKGROUND
sau khi cấp quyền BODY_SENSORS
, bạn có thể giúp người dùng chuyển đến trang cài đặt này. Nếu người dùng từ chối quyền truy cập mọi lúc, họ có thể tiếp tục dùng ứng dụng của bạn.
Ứng dụng nhắm đến một phiên bản cũ
Khi ứng dụng của bạn nhắm đến một phiên bản Android cũ hơn Android 13, quyền truy cập khi ở chế độ nền sẽ không được tự động cấp khi bạn yêu cầu quyền BODY_SENSORS
. Thay vào đó, người dùng sẽ thấy một hộp thoại hệ thống mời người dùng chuyển đến phần cài đặt quyền đối với cảm biến của ứng dụng, như minh hoạ trong hình 2. Sau đó, người dùng phải cho phép sử dụng cảm biến trong nền trên trang cài đặt đó.
Người dùng có thể từ chối quyền truy cập khi ở nền sau. Cách này có tác dụng tương tự như việc thu hồi quyền BODY_SENSORS
khi ứng dụng đang chạy ở chế độ nền. Khi một ứng dụng đang dùng PassiveMonitoringClient
mà không có quyền truy cập khi ở nền sau và chuyển sang chạy ở chế độ nền, ứng dụng đó sẽ mất quyền BODY_SENSORS
và lệnh gọi lại onPermissionLost()
sẽ được thực hiện. Vì những lý do này, bạn đặc biệt nên làm theo các phương pháp hay nhất để yêu cầu quyền khi bắt đầu chạy.