21

Buduję aplikację na Androida, która będzie śledzić geolokację użytkownika i narysować jego trasę na mapie.Kiedy należy używać uprawnienia ACCESS_COARSE_LOCATION?

Korzystam z interfejsu API lokalizacji usług Google Play, zgodnie z opisem here.

Jest intuicyjny, że moja aplikacja wymaga zgody ACCESS_FINE_LOCATION, co umieścić w manifeście:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

Czy ja także potrzeba zgody ACCESS_COARSE_LOCATION? Jaki jest przypadek użycia, w którym potrzebuję zgrubnej lokalizacji?

+0

'ACCESS_COARSE_LOCATION' obejmuje uprawnienie tylko do' 'NETWORK_PROVIDER' Not GPS' –

+1

@IntelliJAmiya: Jestem prawie pewien, że nadal można używać "GPS_PROVIDER" nawet z grubą zgodą, ale dane będą oszołomione, aby wprowadzić miarę niedokładności, dla prywatności. – CommonsWare

+0

@CommonsWare Sir. Dziękuję za informację . –

Odpowiedz

31

Czy potrzebuję również uprawnienia ACCESS_COARSE_LOCATION?

nr

Jaka jest przypadek użycia gdzie muszę grubego lokalizację?

Jeśli nie poprosić o ACCESS_FINE_LOCATION, ale trzeba dane o lokalizacji i jesteś skłonny do tego dane są rozmyte (powiedzmy, do całego bloku miasta od pozycji użytkownika). W przypadku LocationManager można używać tylko NETWORK_PROVIDER; w przypadku dostawcy usług bezpiecznej usługi Play, powinni oni obsługiwać to wewnętrznie.

Dawno, dawno temu, użytkownikom powiedziano podczas instalacji, czy aplikacja wymagała dostępu do grubej lub cienkiej lokalizacji. Użytkownicy mogą akceptować aplikacje, które chcą mieć ograniczony dostęp, ale odrzucają aplikacje wymagające dokładnego dostępu.

Ponieważ interfejs użytkownika tego zmienił się, a użytkownicy mieliby dość trudności z określeniem, czy aplikacja chce uzyskać zgodę na lokalizację z grubsza lub dobrze, podejrzewam, że większość programistów prosi o uzyskanie dokładnego pozwolenia na lokalizację. Biorąc to pod uwagę, jeśli wiesz, że twoja aplikacja nie wymaga takiego poziomu dokładności (np. Chcesz mieć prognozę pogody), prośba o zezwolenie na lokalizację z grubsza jest miłym "czubkiem kapelusza" w kierunku prywatności i może okazać się ponownie korzystny w przyszłości.

+3

Dobrze dopracowany. –

+0

Skąd wiemy, że dostawca lokalizacji w usłudze Google Play łączy w sobie api? Może pochodzić z NETWORK_PROVIDER lub GPS_PROVIDER. –

+0

@RohitBandil: Nie wiesz, co będzie używać interfejsu API. Możesz powiedzieć interfejsowi API z lokalizacją, co chcesz. To się zdecyduje. AFAIK, jeśli przechowujesz tylko "ACCESS_COARSE_LOCATION", da ci to "rozmyte" wyniki. – CommonsWare

3

Nie musisz używać grubej lokalizacji.

Gruboziarnista lokalizacja jest dla lokalizacji operatora sieci, a dokładna lokalizacja jest zarówno dla dostawcy GPS, jak i operatora sieci. tak dobra lokalizacja obejmuje zarówno i nie musisz używać innego.

this to link w celach informacyjnych.

0

Lokalizacja można określić na dwa sposoby:

Using NETWORK_PROVIDER 
Using GPS_PROVIDER 
  1. Korzystanie NETWORK_PROVIDER

    Android uprawnienia wymagane do korzystania z tego dostawcy są albo ACCESS_COARSE_LOCATION lub ACCESS_FINE_LOCATION.

  2. Korzystanie GPS_PROVIDER

    Android uprawnienia wymagane do korzystania z tego operatora są jedynie ACCESS_FINE_LOCATION