2013-01-22 39 views
6

Ứng dụng của tôi chỉ cần dữ liệu vị trí rất thô, vì vậy ban đầu tôi đặt quyền kê khai của mình thành ACCESS_COARSE_LOCATION và thiết lập trình nghe vị trí cho NETWORK_PROVIDER. Điều này đã cho tôi chính xác loại ước tính sơ bộ về vị trí tôi cần nhưng chỉ với Dịch vụ vị trí của Google được bật.Nhận vị trí * coarse * từ nhà cung cấp GPS trên Android

Tôi đã hy vọng rằng nếu người dùng chỉ bật GPS, tôi vẫn sẽ nhận được ước tính sơ bộ về vị trí của họ. Nhưng có vẻ như cách duy nhất để nhận được bất kỳ thông tin vị trí nào từ số GPS_PROVIDER là bằng cách sử dụng quyền cho phép ACCESS_FINE_LOCATION.

Vì vậy, có đúng là chỉ với GPS được bật, ứng dụng không thể nhận thông tin vị trí trừ khi có sự cho phép ACCESS_FINE_LOCATION? Nói cách khác, GPS_PROVIDER không thể gửi ước tính vị trí thô nếu ứng dụng chỉ có quyền đối với số ACCESS_COARSE_LOCATION?

Trả lời

6

Vì vậy, đúng là chỉ bật GPS, ứng dụng không thể nhận thông tin vị trí trừ khi có quyền ACCESS_FINE_LOCATION?

Nói chung, có.

Trích dẫn the documentation for LocationManager:

Nếu ứng dụng của bạn chỉ có sự cho phép thô thì nó sẽ không có quyền truy cập vào GPS hoặc nhà cung cấp vị trí thụ động. Các nhà cung cấp khác sẽ vẫn trả về kết quả vị trí, nhưng tỷ lệ cập nhật sẽ được điều chỉnh và vị trí chính xác sẽ bị làm xáo trộn đến mức độ chính xác thô.

 

Nói cách khác, các GPS_PROVIDER không thể gửi ước tính vị trí thô nếu ứng dụng chỉ có giấy phép ACCESS_COARSE_LOCATION?

Trích dẫn các Android 4.2 release notes:

So với các phiên bản trước của Android, người dùng kết quả vị trí có thể ít chính xác nếu ứng dụng của bạn yêu cầu sự cho phép ACCESS_COARSE_LOCATION nhưng không yêu cầu sự cho phép ACCESS_FINE_LOCATION. Để đáp ứng kỳ vọng quyền riêng tư của người dùng khi ứng dụng của bạn yêu cầu quyền cho vị trí thô (và không phải vị trí tốt), hệ thống sẽ không cung cấp ước tính vị trí người dùng chính xác hơn khối thành phố.

Tuy nhiên, tôi giả định rằng điều này không thay thế tuyên bố "sẽ không có quyền truy cập vào GPS" từ LocationManager. Tôi cho rằng điều này có nghĩa là dữ liệu NETWORK_PROVIDER có thể bị ức chế, nếu dữ liệu đó được coi là quá chính xác.

+0

Điều đó quá tệ. Sẽ tốt hơn nếu GPS_PROVIDER vẫn có thể trả về các ước tính sơ bộ nếu chỉ yêu cầu quyền COURSE. – Josh

Các vấn đề liên quan