Sử dụng quyền truy cập thông tin vị trí ở chế độ nền

Android 14 (Android U) giới thiệu các quy định hạn chế mới đối với các ứng dụng truy cập vào thông tin vị trí của người dùng ở chế độ nền. Để giúp giảm thiểu những thay đổi này, SDK điều hướng đã được cập nhật trong phiên bản 5.3.2 để quản lý tốt hơn quyền truy cập thông tin vị trí ở chế độ nền. Bạn cũng nên cập nhật phương thức triển khai của mình để đảm bảo rằng ứng dụng tiếp tục có quyền truy cập vào dữ liệu vị trí chính xác nhất.

Tác động của các thay đổi trong Android 14 đến SDK điều hướng

Khi bạn gọi startGuidance() trong ứng dụng, dịch vụ trên nền trước sẽ bắt đầu hiển thị thông báo cho người dùng về đường đi từng chặng. Tính năng chỉ đường từng chặng phụ thuộc vào việc có thể truy cập vào vị trí của người dùng để cập nhật tuyến đường cũng như hiển thị chỉ dẫn chính xác bằng hình ảnh và âm thanh. Kể từ Android 14, việc truy cập thông tin vị trí chính xác của người dùng ở chế độ nền sẽ yêu cầu người dùng cấp quyền. Theo mặc định, nếu một ứng dụng không được người dùng cấp quyền truy cập thông tin vị trí ở chế độ nền và cố gắng bắt đầu một dịch vụ trên nền trước để cập nhật thông tin vị trí, thì hệ thống sẽ gửi ra một SecurityException, khiến ứng dụng đó gặp sự cố.

Cách SDK điều hướng giúp giảm thiểu vấn đề này

Kể từ phiên bản 5.3.2, SDK điều hướng sẽ xử lý SecurityException này mà không ảnh hưởng đến ứng dụng, cho phép điều hướng tiếp tục chạy ở chế độ nền. Ngoài ra, SDK điều hướng bao gồm quyền ACCESS_BACKGROUND_LOCATION trong AndroidManifest. Bằng cách này, ứng dụng của bạn không cần khai báo quyền vì việc hợp nhất Gradle sẽ xử lý việc đó. Tuy nhiên, nếu người dùng không thấy thông báo trước khi ứng dụng chuyển sang chạy ở chế độ nền, thì SDK điều hướng sẽ dựa vào hệ thống để cung cấp thông tin cập nhật vị trí. Các bản cập nhật hệ thống này có thể không diễn ra thường xuyên hoặc không chính xác và dẫn đến trải nghiệm chỉ đường dưới mức tối ưu. Vì lý do này, bạn cũng nên nhắc người dùng cấp quyền truy cập thông tin vị trí ở chế độ nền.

Những việc nhà phát triển ứng dụng có thể làm để cải thiện độ chính xác của vị trí cho tính năng chỉ đường

Bạn có thể cải thiện độ chính xác của tín hiệu vị trí mà SDK điều hướng sử dụng bằng cách cập nhật ứng dụng để nhắc người dùng cấp quyền truy cập thông tin vị trí ở chế độ nền. Lời nhắc sẽ giải thích cho người dùng về việc việc cấp quyền sẽ cải thiện độ chính xác của vị trí và cải thiện trải nghiệm đi theo chỉ dẫn của họ khi ứng dụng đang chạy ở chế độ nền.

hộp thoại cấp quyền mẫu

Để biết thêm thông tin về cách nhắc người dùng cấp quyền truy cập thông tin vị trí, hãy xem bài viết Yêu cầu quyền truy cập thông tin vị trí | Cảm biến và thông tin vị trí | Nhà phát triển Android.