Uzyskiwanie przybliżonej lokalizacji

Aby uszanować prywatność użytkowników, zachęcamy deweloperów aplikacji, aby prosili tylko o przyznanie uprawnień dotyczących przybliżonej lokalizacji. Aplikacje, które potrzebują przybliżonej przybliżonej lokalizacji, korzystają zwykle z funkcji Fused Network Location (FLP), ponieważ jest ona szybka i zużywa mniej energii. W porównaniu z urządzeniami z Androidem lokalizacja sieciowa w aplikacjach motoryzacyjnych może być trudniejsza. Możesz użyć 2 interfejsów API Androida:

  • Interfejs LocationManager API wymaga użycia właściwości requestLocationUpdates do jednoznacznego wskazania preferowanego dostawcy lokalizacji.

  • Interfejs Google Play Services API ułatwia pracę z lokalizacją w FusedLocationProviderClient.

Wiele aplikacji motoryzacyjnych używa FLP z interfejsu Google Play Services API zamiast LocationManager. FLP wybiera optymalnego dostawcę lokalizacji na podstawie kryteriów i zasad żądania lokalizacji (mocy i dokładności), które są wymagane przez pojazd.

Możesz też zdecydować się na jawne żądanie i użycie znaczników NETWORK_PROVIDER oraz GPS_PROVIDER do precyzyjnego położenia, które wymagają uprawnień android.permission.ACCESS_FINE_LOCATION. W Androidzie 12 (poziom interfejsu API 31) i nowszych usługa FUSED_PROVIDER (wcześniej dostępna tylko przez interfejs Google Play Services API) jest dostępna jako dostawca lokalizacji w LocationManager. Wdrożoną wersję FLP znajdziesz w narzędziu FusedLocationProvider.java.

Chociaż można używać GPS_PROVIDER tylko z przybliżonymi uprawnieniami uprawnień – platforma sztucznie zmniejsza dokładność, aby spełnić oczekiwania, ale nie ma sensu dla deweloperów korzystających z telefonów z Androidem, ponieważ ogólna dostępność jest niska i często wolniejsza uzyskanie przybliżonej pozycji.

Lokalizacja sieciowa w branży motoryzacyjnej

NETWORK_PROVIDER używana na telefonach z Androidem (z Usługami mobilnymi Google) określa lokalizację na podstawie pobliskich stacji bazowych, punktów dostępu Wi-Fi i beaconów Bluetooth (BT). W związku z tym NETWORK_PROVIDER może wymagać połączenia w trybie transmisji danych.

W przypadku aplikacji motoryzacyjnych ograniczenia dotyczące urządzeń są inne. Ponieważ globalny system nawigacji satelitarnej (GNSS) Gthe jest zwykle włączony, w związku z większym zużyciem energii i baterii nie są naliczane żadne kary. W rezultacie czas działania IVI nie jest ograniczony. Dokładamy wszelkich starań, aby zminimalizować ilość danych przesyłanych z naszymi serwerami.

Wiele aplikacji używa więc FLP z interfejsu Play API zamiast LocationManager bezpośrednio, ponieważ FLP automatycznie wykonuje tę inteligentną rzecz, korzystając z dostawcy lokalizacji, który najlepiej spełnia kryteria/zasady dotyczące żądań lokalizacji (dotyczących mocy i dokładności danych).

W przeciwieństwie do urządzeń mobilnych pojazdy rzadko przeskakują z jednego miejsca na drugie. Położenie pojazdu jest często znane pod maską.

Dostawca lokalizacji sieciowej (NLP)

Większość pojazdów nie ma interfejsów API wymaganych do telefonii, które pozwalają uzyskać potrzebne informacje na temat identyfikatora stacji bazowej (i siły sygnału). W związku z tym, ponieważ ograniczamy wykorzystanie danych, nie oferujemy dodatkowej, funkcjonalnej implementacji NLP.

Dostawca uśrednionej lokalizacji

Mobilny FLP nie tylko inteligentnie korzysta z dostawców sieci i GPS-u, ale łączy informacje z innych czujników, aby jeszcze bardziej poprawić jakość lokalizacji. Obecna implementacja FLP firmy Automotive wykorzystuje powyższe założenia i ciągle używa GPS_PROVIDER jako źródła. Zniekształca pozycje z GNSS, dodając pewne błędy, aby w razie potrzeby zwiększyć dokładność. Na przykład wtedy, gdy klient otrzyma przybliżone lokalizacje.

Dlatego w nielicznych przypadkach czas na udostępnienie pierwszej pozycji może być dłuższy niż zwykle. Dotyczy to na przykład pierwszego uruchomienia pojazdu lub, ściślej: jego podsystemu lokalizacji, lub po nim.

Projektowanie aplikacji przeznaczonych dla użytkowników urządzeń mobilnych i samochodów

W przypadku aplikacji kierowanych na urządzenia mobilne i samochodowe, które nie wymagają większej dokładności, wyślij prośbę tylko android.permission.ACCESS_COARSE_LOCATION i w razie potrzeby wróć do FLP. Możesz też użyć bezpośrednio polecenia GPS_PROVIDER z tymi samymi uprawnieniami. Platforma zmniejsza precyzję bazowej pozycji GNSS, aby spełnić oczekiwania dotyczące interfejsów API. Więcej informacji znajdziesz w sekcji Dokładność artykułu Wysyłanie prośby o dostęp do lokalizacji.

Dodatkowo te aplikacje muszą wyraźnie zadeklarować w pliku manifestu funkcję android.hardware.location.network jako opcjonalne. Na przykład:

<uses-feature android:name="android.hardware.location.network" android:required="false" />

To podejście zapewnia maksymalną zgodność z urządzeniami w różnych branżach, a tym samym maksymalną dostępność aplikacji bez różnic w kodzie w celu uzyskiwania pozycji, gdy jest to potrzebne.