Если у меня уже есть ACCESS_FINE_LOCATION, я могу опустить ACCESS_COARSE_LOCATION?

У меня есть приложение GPS, которое уже запрашивает разрешение ACCESS_FINE_LOCATION в манифесте, теперь я хочу добавить библиотеку (MoPub), которая требует ACCESS_COARSE_LOCATION.

Правильно ли я полагаю, что ACCESS_FINE_LOCATION достаточно, и я могу оставить ACCESS_COARSE_LOCATION из моего манифеста?

Ответ 1

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

Примечание. Если вы используете как NETWORK_PROVIDER, так и GPS_PROVIDER, вам необходимо запросить только разрешение ACCESS_FINE_LOCATION, поскольку оно включает разрешение для обоих поставщиков. (Разрешение для ACCESS_COARSE_LOCATION включает разрешение только для NETWORK_PROVIDER.)

Короче: да, вам не нужно ACCESS_COARSE_LOCATION, если вы уже определили ACCESS_FINE_LOCATION.

Ответ 2

Зависит от вашей необходимости.

В отношении разрешения ACCESS_FINE_LOCATION включает ACCESS_COARSE_LOCATION. Однако есть одна загвоздка:

ACCESS_COARSE_LOCATION дает вам последнее известное местоположение, которое работает от батареи https://developer.android.com/training/location/retrieve-current.html#setup
Например, если ваше приложение делает что-то вроде рекомендаций на основе местоположения, последнее известное местоположение достаточно хорошо.
Это зависит от Google Play Services

Однако, если вам нужно что-то вроде местоположения в реальном времени/в реальном времени, например Pokemon Go, используйте ACCESS_FINE_LOCATION
Это дает вам жить/в режиме реального времени местоположение. Вам нужно будет использовать LocationListener
В прошлый раз, когда я проверял, это не требует Google Play Services