2013-03-09 17 views

Odpowiedz

103

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

Uwaga: Jeśli używasz zarówno NETWORK_PROVIDER i GPS_PROVIDER, to trzeba zwrócić tylko pozwolenie ACCESS_FINE_LOCATION, ponieważ obejmuje uprawnienie dla obu dostawców. (Zezwolenie na ACCESS_COARSE_LOCATION obejmuje uprawnienie wyłącznie dla NETWORK_PROVIDER.)

W skrócie: tak, nie trzeba ACCESS_COARSE_LOCATION jeśli już zdefiniowane ACCESS_FINE_LOCATION.

+9

+1 ale dziwnie, Google Maps doc zaleca się stosowanie zarówno: https://developers.google.com/maps/ documentation/android/start? hl = fr # specify_app_settings_in_the_application_manifest – alex

+3

Może dla telefonów z funkcjami sieciowymi, ale bez GPS? –

+2

@NicklasA. logicznie rzecz biorąc, nie powinno to wpłynąć na to, że "grzywna" obejmuje "grubą" - brakujący dostawca po prostu nie będzie posiadał. Ponadto, gdyby było to potrzebne w tym przypadku, oczekiwałbym od Google docs. – ToolmakerSteve

5

Zależy od potrzeb.

Pozwolenie mądre, ACCESS_FINE_LOCATION obejmuje ACCESS_COARSE_LOCATION. Istnieje jednak pewien haczyk:

ACCESS_COARSE_LOCATION daje ostatnią znaną lokalizację, która jest przyjazna https://developer.android.com/training/location/retrieve-current.html#setup
Na przykład bateria, jeśli aplikacja robi coś podobnego zaleceń opartych na lokalizacji, ostatnia znana lokalizacja jest wystarczająco dobre.
Ta zależność ma w Google Play Services

Jednakże, jeśli trzeba coś takiego położenia na żywo/w czasie rzeczywistym jak Pokemon Go używać ACCESS_FINE_LOCATION
Daje Ci żyć/lokalizacja w czasie rzeczywistym. Musisz użyć LocationListener
Ostatni raz sprawdzałem, to nie wymaga Usług Google Play

+0

Czy ta zgoda przydaje się do skanowania Bluetooth LE? –

Powiązane problemy