Yêu cầu quyền truy cập thông tin vị trí ở chế độ nền

Trang này thảo luận về những nội dung sau:

  • Cách yêu cầu quyền truy cập thông tin vị trí ở chế độ nền.
  • Cách xử lý yêu cầu dựa trên phiên bản SDK mục tiêu của ứng dụng.
  • Cách lựa chọn ưu tiên của người dùng về thông tin vị trí gần đúng ảnh hưởng đến cách ứng dụng của bạn nhận thông tin vị trí ở chế độ nền.
Hình 7. Trang Cài đặt có một tuỳ chọn tên là Luôn cho phép. Tuỳ chọn này cấp quyền truy cập thông tin vị trí ở chế độ nền.

Nội dung của hộp thoại cấp quyền phụ thuộc vào phiên bản SDK mục tiêu

Khi một tính năng trong ứng dụng của bạn yêu cầu quyền truy cập thông tin vị trí ở chế độ nền trên một thiết bị chạy Android 10 (API cấp 29), hộp thoại cấp quyền của hệ thống sẽ bao gồm một tuỳ chọn có tên là Luôn cho phép. Nếu người dùng chọn tuỳ chọn này, tính năng trong ứng dụng của bạn sẽ có quyền truy cập thông tin vị trí ở chế độ nền.

Tuy nhiên, trên Android 11 (API cấp 30) trở lên, hộp thoại của hệ thống sẽ không bao gồm tuỳ chọn Luôn cho phép. Thay vào đó, người dùng phải bật quyền truy cập thông tin vị trí ở chế độ nền trên trang cài đặt, như minh hoạ trong hình 7.

Bạn có thể giúp người dùng chuyển đến trang cài đặt này bằng cách làm theo các phương pháp hay nhất khi yêu cầu quyền truy cập thông tin vị trí ở chế độ nền. 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 11 trở lên

Nếu ứng dụng của bạn chưa được cấp quyền ACCESS_BACKGROUND_LOCATIONshouldShowRequestPermissionRationale() trả về true, hãy hiển thị cho người dùng một giao diện người dùng hướng dẫn bao gồm:

  • Nội dung giải thích rõ lý do tính năng của ứng dụng cần quyền truy cập thông tin vị trí ở chế độ nền.
  • Nhãn mà người dùng nhìn thấy của chế độ cài đặt cấp quyền truy cập thông tin vị trí ở chế độ nền (ví dụ: Luôn cho phép trong hình 7). Bạn có thể gọi getBackgroundPermissionOptionLabel() để lấy nhãn này. Giá trị trả về của phương thức này sẽ được bản địa hoá sang ngôn ngữ mà người dùng ưu tiên lựa chọn trên thiết bị.
  • Một tuỳ chọn để người dùng từ chối cấp quyền. Nếu từ chối cấp quyền truy cập thông tin vị trí ở chế độ nền, thì người dùng vẫn có thể dùng ứng dụng của bạn.
Người dùng có thể nhấn vào thông báo hệ thống để thay đổi chế độ cài đặt vị trí cho một ứng dụng
Hình 8. Thông báo nhắc người dùng rằng họ đã cấp cho một ứng dụng quyền truy cập thông tin vị trí ở chế độ nền.

Ứng dụng nhắm đến Android 10 trở xuống

Khi một tính năng trong ứng dụng của bạn yêu cầu quyền truy cập thông tin vị trí ở chế độ nền, người dùng sẽ thấy một hộp thoại của hệ thống. Hộp thoại này có một tuỳ chọn để chuyển đến các tuỳ chọn cấp quyền truy cập thông tin vị trí cho ứng dụng trên trang cài đặt.

Miễn là ứng dụng của bạn đã làm theo các phương pháp hay nhất để yêu cầu quyền truy cập thông tin vị trí, thì bạn không cần thực hiện thay đổi nào để hỗ trợ hành vi này.

Người dùng có thể ảnh hưởng đến độ chính xác của vị trí ở chế độ nền

Nếu người dùng yêu cầu thông tin vị trí gần đúng, thì các lựa chọn của người dùng trong hộp thoại cấp quyền truy cập thông tin vị trí cũng áp dụng cho quyền truy cập thông tin vị trí ở chế độ nền. Nói cách khác, nếu người dùng cấp cho ứng dụng của bạn quyền ACCESS_BACKGROUND_LOCATION nhưng chỉ cấp quyền truy cập thông tin vị trí gần đúng ở chế độ nền trước, thì ứng dụng của bạn cũng chỉ có quyền truy cập thông tin vị trí gần đúng ở chế độ nền.

Tài nguyên khác

Để biết thêm thông tin về quyền truy cập thông tin vị trí trong Android, hãy xem các tài liệu sau:

Lớp học lập trình

Video

Mẫu

  • Ứng dụng mẫu để minh hoạ việc sử dụng quyền truy cập thông tin vị trí.