Quyền truy cập thông tin vị trí ba trạng thái

Quyền truy cập thông tin vị trí ở trạng thái ba trạng thái trong Android 10 giúp người dùng kiểm soát nhiều hơn cách ứng dụng truy cập thông tin vị trí của thiết bị.

Trên Android 9 trở xuống, người dùng đã đưa ra lựa chọn liên tục khi cấp quyền truy cập thông tin vị trí cho ứng dụng. Người dùng có thể Từ chối hoặc Cho phép. Lựa chọn sau cho phép ứng dụng truy cập mọi lúc (chế độ nền trước và nền sau). Quyền truy cập thông tin vị trí ở trạng thái ba trạng thái trong Android 10 cung cấp cho người dùng 3 lựa chọn để cho phép ứng dụng truy cập thông tin vị trí của thiết bị. Người dùng sẽ được nhắc cấp hoặc từ chối cấp quyền khi ứng dụng yêu cầu.

Người dùng thường thấy 3 lựa chọn được trình bày trong Hình 1. Tuy nhiên, có những trường hợp sử dụng chỉ yêu cầu hai trong số các tuỳ chọn này và trong những trường hợp như vậy, chỉ hai tuỳ chọn đó mới xuất hiện.

Màn hình quyền truy cập thông tin vị trí ở trạng thái ba trạng thái

Hình 1. Màn hình thông báo ba trạng thái.

Sau đây là 3 lựa chọn:

  • Luôn cho phép: ứng dụng biết được vị trí của thiết bị ngay cả khi người dùng không sử dụng ứng dụng (chạy ở chế độ nền). Điều này tương đương với việc cho phép quyền trên Android 9 trở xuống.
  • Chỉ cho phép khi ứng dụng đang được sử dụng: (chỉ ở chế độ nền trước) ứng dụng chỉ thấy được thông tin vị trí của thiết bị khi đang chạy.
  • Từ chối: ứng dụng không bao giờ thấy thông tin vị trí của thiết bị. Điều này tương tự như việc từ chối cấp quyền trên Android 9 trở xuống.

Người dùng sẽ được nhắc cấp quyền truy cập thông tin vị trí khi ứng dụng yêu cầu quyền này.

Sau khi người dùng cấp quyền truy cập Chỉ cho phép khi dùng ứng dụng, ứng dụng có thể yêu cầu tăng dần quyền truy cập lên Luôn cho phép. Người dùng sẽ thấy một hộp thoại yêu cầu (như trong Hình 2). Nếu người dùng chọn Giữ quyền truy cập trong khi sử dụng, thì khi ứng dụng truy cập thông tin vị trí của thiết bị trong lần sử dụng tiếp theo, hộp thoại sẽ cung cấp lựa chọn Giữ và không hỏi lại.

Hộp thoại này sẽ xuất hiện trong các điều kiện sau đây đối với ứng dụng nhắm đến Android 10:

  • Sau ít nhất 24 giờ kể từ khi bạn cấp quyền.
  • Chỉ khi ứng dụng đang nhận thông tin vị trí ở chế độ nền.
  • Khi màn hình đang bật và người dùng không sử dụng ứng dụng khác.
Quyền gia tăng

Hình 2. Quyền gia tăng.

Để tìm hiểu thêm về cách yêu cầu cấp quyền, hãy xem phần Quyền truy cập của ứng dụng vào thông tin vị trí của thiết bị. Để biết thông tin chi tiết nếu ứng dụng của bạn nhắm đến Android 9 trở xuống, hãy xem phần Tiếp tục hành động do người dùng khởi tạo.

Tác động

Tính năng quyền truy cập thông tin vị trí ở trạng thái ba trạng thái ảnh hưởng đến mọi ứng dụng cần quyền truy cập thông tin vị trí của thiết bị khi chạy ở chế độ nền và là tính năng bắt buộc trong Android 10.

Bạn có thể thay đổi mã của mình nhưng không được thay đổi hoặc tuỳ chỉnh hành vi liên quan đến quyền trong khung.

Triển khai

Quyền truy cập thông tin vị trí ở trạng thái ba trạng thái được áp dụng cho các ứng dụng trong Android 10, bất kể SDK mục tiêu của ứng dụng là gì.

Để biết thông tin về cách triển khai các trường hợp sử dụng của ứng dụng (khi nâng cấp), hãy tham khảo phần Thiết kế cho các trường hợp nâng cấp thiết bị trong tài liệu dành cho nhà phát triển.

Để xem cách bật quyền truy cập cho các trường hợp sử dụng khác nhau (chẳng hạn như yêu cầu quyền truy cập thông tin vị trí ở chế độ nền cho các ứng dụng như Google Maps hoặc Dịch vụ Google Play), hãy xem các chủ đề sau trên trang Quyền truy cập của ứng dụng vào thông tin vị trí của thiết bị:

Quyền truy cập thông tin vị trí trong ứng dụng

Người dùng có thể thay đổi quyền truy cập của ứng dụng thành Từ chối hoặc Chỉ cho phép khi dùng ứng dụng nếu họ muốn. Đối với quyền truy cập thông tin vị trí trong ứng dụng và đối với tất cả ứng dụng bên thứ nhất và bên thứ ba, hãy cung cấp các cấp độ kiểm soát của người dùng như trong bảng sau.

Loại quyền mà ứng dụng cần yêu cầu Các tuỳ chọn cần cung cấp cho người dùng
Ứng dụng chỉ yêu cầu quyền trên nền trước Chỉ cho phép khi dùng ứng dụng
Từ chối
Ứng dụng luôn yêu cầu cấp quyền (ở chế độ nền trước và nền) Luôn cho phép
Chỉ cho phép khi dùng ứng dụng
Từ chối
Tất cả ứng dụng có yêu cầu quyền truy cập thông tin vị trí Chỉ cho phép khi dùng ứng dụng

Các quyền này áp dụng cho tất cả các yêu cầu về vị trí. Ứng dụng có quyền Chỉ cho phép khi dùng ứng dụng không được phép quét Wi-Fi hoặc mạng di động ở chế độ nền.

Trên Android 11 trở xuống, các ứng dụng có quyền Chỉ cho phép khi dùng ứng dụng sẽ không được phép quét Bluetooth ở chế độ nền. Kể từ Android 12, các ứng dụng có quyền Chỉ cho phép khi dùng ứng dụng có thể nhận được kết quả quét Bluetooth bằng cách đặt giá trị của thuộc tính android:usesPermissionFlags thành neverForLocation. Để biết thêm thông tin chi tiết, hãy xem phần Ứng dụng không lấy thông tin vị trí thực tế.

Nâng cấp hệ điều hành

Khi nâng cấp hệ điều hành lên Android 10, quyền truy cập thông tin vị trí của ứng dụng sẽ được chuyển đổi theo cách sau:

  • Bật sẽ chuyển thành Chỉ cho phép khi đang sử dụng.
  • Tắt vẫn ở trạng thái tắt (Từ chối).
  • Quyền truy cập thông tin vị trí được cấp trước sẽ trở thành quyền Chỉ cho phép khi đang sử dụng được cấp trước.