Nếu tôi đã có ACCESS_FINE_LOCATION, tôi có thể bỏ qua ACCESS_COARSE_LOCATION không?


89

Tôi có một ứng dụng GPS đã yêu cầu ACCESS_FINE_LOCATIONquyền trong tệp kê khai, bây giờ tôi muốn thêm thư viện (MoPub) yêu cầu ACCESS_COARSE_LOCATION.

Tôi có đúng khi cho rằng như vậy ACCESS_FINE_LOCATIONlà đủ và tôi có thể bỏ qua ACCESS_COARSE_LOCATIONtệp kê khai của mình không?

Câu trả lời:


153

https://developer.android.com/guide/topics/location/strategies.html#Permission

Lưu ý: Nếu bạn đang sử dụng cả NETWORK_PROVIDER và GPS_PROVIDER, thì bạn chỉ cần yêu cầu quyền ACCESS_FINE_LOCATION vì nó bao gồm quyền cho cả hai nhà cung cấp. (Quyền đối với ACCESS_COARSE_LOCATION chỉ bao gồm quyền đối với NETWORK_PROVIDER.)

Tóm lại: có, bạn không cần ACCESS_COARSE_LOCATIONnếu bạn đã xác định ACCESS_FINE_LOCATION.


13
1 nhưng kỳ quặc, Google Maps doc khuyên bạn nên sử dụng cả hai: developers.google.com/maps/documentation/android/...
alex

3
Có lẽ đối với điện thoại có khả năng mạng nhưng không có GPS?
Nicklas A.

2
@NicklasA. về mặt logic, điều đó sẽ không ảnh hưởng đến thực tế là "fine" bao gồm "coarse" - nhà cung cấp bị thiếu sẽ đơn giản là thiếu. Ngoài ra, nếu nó là cần thiết cho trường hợp đó, thì tôi hy vọng các tài liệu của Google sẽ nói như vậy.
ToolmakerSteve

9
Cập nhật nhận xét của @ alex: Google Maps hiện nói rõ ràng rằng bạn chỉ cần yêu cầu một quyền. developers.google.com/maps/documentation/android-api/location
Klox

15

Tùy thuộc vào nhu cầu của bạn.

Quyền khôn ngoan, ACCESS_FINE_LOCATIONbao gồm ACCESS_COARSE_LOCATION. Tuy nhiên, có một nhược điểm:

ACCESS_COARSE_LOCATIONcung cấp cho bạn vị trí đã biết gần đây nhất, thân thiện với pin https://developer.android.com/training/location/retrieve-current.html#setup
Ví dụ: nếu ứng dụng của bạn thực hiện điều gì đó giống như đề xuất dựa trên vị trí, thì vị trí được biết gần đây nhất là đủ tốt.
Điều này phụ thuộc vào Dịch vụ của Google Play

Tuy nhiên, nếu bạn cần một cái gì đó như vị trí trực tiếp / thời gian thực như Pokemon Go, hãy sử dụng ACCESS_FINE_LOCATION
Nó cung cấp cho bạn vị trí trực tiếp / thời gian thực. Bạn sẽ cần sử dụng LocationListener
Lần cuối tôi đã kiểm tra, điều này không yêu cầu Dịch vụ của Google Play


Quyền này có hữu ích cho việc quét Bluetooth LE không?
IgorGanapolsky

@ericn có thể bạn có thể giúp tôi về các vấn đề vị trí? stackoverflow.com/questions/63917764/… Tôi có hành vi rất lạ khi nghe các câu NMEA.
Viktor Apoyan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.