Như đã mô tả trên các trang về yêu cầu quyền truy cập vị trí và 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 loại quyền truy cập vị trí quan trọng đối với tính năng dành cho người dùng và cần tiết lộ về điều này cho người dùng theo cách phù hợp. Phần lớn trường hợp sử dụng chỉ yêu cầu thông tin vị trí khi người dùng đang sử dụng ứng dụng. Nếu ứng dụng yêu cầu quyền truy cập thông tin vị trí ở chế độ nền (chẳng hạn như khi triển khai tính năng khoanh vùng địa lý), hãy đảm bảo rằng tính năng này quan trọng đối với chức năng cốt lõi của ứng dụng, mang lại lợi ích rõ ràng cho người dùng và được thực hiện theo cách rõ ràng.
Danh sách kiểm tra quyền truy cập vị trí ở chế độ nền
Sử dụng danh sách kiểm tra sau đây để xác định logic truy cập thông tin vị trí tiềm năng ở chế độ nền:
Trong tệp kê khai của ứng dụng, hãy kiểm tra quyền
ACCESS_COARSE_LOCATIONvà quyềnACCESS_FINE_LOCATION. Xác định rằng ứng dụng yêu cầu các quyền về vị trí này.- Nếu ứng dụng của bạn dành cho Android 10 (cấp độ API 29) trở lên, hãy kiểm tra quyền
ACCESS_BACKGROUND_LOCATION. Xác định rằng ứng dụng có tính năng yêu cầu quyền này.
- Nếu ứng dụng của bạn dành cho Android 10 (cấp độ API 29) trở lên, hãy kiểm tra quyền
Tìm kiếm trường hợp sử dụng các API quyền truy cập thông tin vị trí, chẳng hạn như API trình cung cấp vị trí kết hợp, API khoanh vùng địa lý hoặc API
LocationManagertrong mã, chẳng hạn như trong các cấu trúc sau:- Dịch vụ nền
- Tác vụ
WorkManagerhoặcJobScheduler - Hoạt động
AlarmManager - Các ý định đang chờ xử lý được gọi từ một tiện ích của ứng dụng
Nếu ứng dụng sử dụng SDK hoặc thư viện truy cập thông tin vị trí, thì quyền truy cập này sẽ được ghi nhận cho ứng dụng. Để xác định xem SDK hoặc thư viện có cần quyền truy cập thông tin vị trí hay không, hãy tham khảo tài liệu về thư viện.
Đánh giá quyền truy cập thông tin vị trí ở chế độ nền
Nếu bạn thấy rằng ứng dụng truy cập thông tin vị trí ở chế độ nền, hãy cân nhắc thực hiện những hành động sau:
- Đánh giá xem quyền truy cập thông tin vị trí ở chế độ nền có quan trọng đối với chức năng cốt lõi của ứng dụng hay không.
Nếu bạn không cần quyền truy cập vị trí ở chế độ nền, hãy xoá quyền truy cập vị trí ở chế độ nền.
Nếu ứng dụng của bạn dành cho Android 10 (cấp độ API 29) trở lên, hãy xoá quyền
ACCESS_BACKGROUND_LOCATIONkhỏi tệp kê khai ứng dụng. Khi xoá quyền này, bạn sẽ xoá tuỳ chọn quyền truy cập vào thông tin vị trí mọi lúc cho ứng dụng trên các thiết bị chạy Android 10.Hãy đảm bảo người dùng biết rằng ứng dụng đang truy cập thông tin vị trí ở chế độ nền. Điều này đặc biệt quan trọng đối với các trường hợp không rõ ràng đối với người dùng.
Nếu có thể, hãy tái cấu trúc logic quyền truy cập thông tin vị trí để chỉ yêu cầu thông tin vị trí khi người dùng nhìn thấy hoạt động của ứng dụng.
Việc cập nhật vị trí ở chế độ nền bị hạn chế
Nếu ứng dụng cần quyền truy cập thông tin vị trí ở chế độ nền, hãy lưu ý rằng Android bảo toàn thời lượng pin cho thiết bị bằng cách đặt giới hạn về quyền truy cập thông tin vị trí ở chế độ nền trên các thiết bị chạy Android 8.0 (API cấp 26) trở lên. Trên các phiên bản Android này, nếu đang chạy ở chế độ nền thì ứng dụng chỉ có thể nhận được thông tin cập nhật vị trí vài lần mỗi giờ. Để biết thêm thông tin, hãy xem bài viết Giới hạn về quyền truy cập vị trí ở nền sau.
Tài nguyên khác
Để tìm hiểu thêm về cách sử dụng quyền truy cập vị trí ở nền sau, hãy xem các tài liệu sau:
Video
Cách tìm trường hợp có thể sử dụng quyền truy cập vị trí ở nền sau
Mẫu
Mẫu quyền truy cập vị trí ở nền sau minh hoạ các phương pháp hay nhất để truy cập thông tin vị trí khi ứng dụng chạy ở chế độ nền.