Uzyskiwanie przybliżonej lokalizacji

Aby szanować prywatność użytkowników, zachęcamy deweloperów aplikacji do przesyłania żądań tylko w przypadku przybliżonych wartości dostępu do lokalizacji. Aplikacje, które zwykle wymagają przybliżonej przybliżonej pozycji korzysta z uśrednionej lokalizacji sieciowej (FLP), ponieważ jest ona szybka i zużywa mniej energii. W porównaniu z urządzeniami mobilnymi z Androidem lokalizacja sieci w aplikacjach motoryzacyjnych może być trudniejsze. Możesz używać 2 interfejsów API Androida:

Wiele aplikacji motoryzacyjnych korzysta z FLP z interfejsu Google Play Services API zamiast LocationManager FLP wybiera optymalnego dostawcę lokalizacji na podstawie lokalizacji kryteria żądania i zasady (moc i dokładność) wymagane przez pojazd.

Możesz też zdecydować się na użycie NETWORK_PROVIDER , a także GPS_PROVIDER za precyzyjne pozycje, w których android.permission.ACCESS_FINE_LOCATION uprawnień. W Androidzie 12 (poziom interfejsu API 31) i nowszych FUSED_PROVIDER, wcześniej była dostępna tylko przez interfejs Google Play Services API, jako dostawca lokalizacji w sieci LocationManager. Implementację FLP znajdziesz tutaj: FusedLocationProvider.java

Chociaż można używać usługi GPS_PROVIDER tylko z ogólnymi uprawnieniami – system sztucznie pogarsza dokładność, aby dostosować się do oczekiwań. nie ma sensu w przypadku deweloperów kierujących reklamy na telefony z Androidem, jest niska i często wolniejsza w celu uzyskania przybliżonej pozycji.

Lokalizacja sieci w branży motoryzacyjnej

NETWORK_PROVIDER używane na telefonach z Androidem (w Usługach mobilnych Google) określa lokalizację na podstawie pobliskich nadajników telefonii komórkowej, punktów dostępu Wi-Fi oraz beacony Bluetooth (BT), Dlatego aplikacja NETWORK_PROVIDER może wymagać danych połączenia.

W przypadku aplikacji motoryzacyjnych obowiązują inne ograniczenia dotyczące urządzeń. Ponieważ Gthe globalna nawigacja system satelitarny (GNSS) jest zwykle włączony, nie nakładamy kar zwiększone zużycie energii i baterii. W rezultacie czas działania IVI nie jest ograniczony. Staramy się ograniczać ilość danych wymienianych z naszymi serwerami.

Dlatego wiele aplikacji używa FLP z interfejsu Play API zamiast LocationManager bezpośrednio, ponieważ FLP automatycznie wykonuje inteligentną rzecz, korzystając z lokalizacji. dostawca najlepiej spełni kryteria/zasady dotyczące żądań lokalizacji (tj. i dokładność).

W przeciwieństwie do urządzeń mobilnych pojazdy rzadko przeskakują z jednego miejsca do innego użytkownika. Położenie pojazdu jest zazwyczaj znane pod maską.

Dostawca lokalizacji sieciowej (NLP)

Większość pojazdów nie wdraża wymaganych interfejsów API telefonicznych, aby uzyskiwać potrzebne informacje dla identyfikatora stacji bazowej sieci komórkowej (i siły sygnału). Ze względu na to, że ograniczamy do minimum ilość danych, nie jest dostępna żadna dodatkowa implementacja NLP.

Dostawca uśrednionej lokalizacji

Mobilny FLP, oprócz inteligentnego wykorzystania dostawców sieciowych i GPS-a jako łączy informacje z innych czujników, aby jeszcze bardziej ulepszyć jakość lokalizacji. Obecne wdrożenie interfejsu FLP w branży motoryzacyjnej korzysta z wspomnianych wcześniej założeń i wykorzystuje GPS_PROVIDER jako bazowe źródło przez cały czas. Powodują korygowanie pozycji z GNSS, dodając kilka błędów, aby były bardziej niedokładne. Przykład: gdy klient otrzymuje przybliżoną lokalizację.

Dlatego w bardzo nielicznych przypadkach czas oczekiwania na odpowiedź może być dłuższy niż zwykle które są dostępne na pierwszej pozycji. Na przykład, gdy pierwszy raz korzystasz z pojazdu dokładnym, jego podsystem lokalizacji jest używany lub po odholowaniu.

Projektowanie aplikacji z myślą o urządzeniach mobilnych i motoryzacjach

Aplikacje kierowane na urządzenia mobilne i urządzenia motoryzacyjne, które nie wymagają większej precyzji, żądania android.permission.ACCESS_COARSE_LOCATION. tylko i wrócić do używania FLP, gdy jest on dostępny. Możesz też użyć GPS_PROVIDER bezpośrednio z tymi samymi uprawnieniami. Platforma pogarsza dokładności bazowej pozycji GNSS, aby dostosować ją do oczekiwań interfejsu API. Do więcej informacji znajdziesz w sekcji Dokładność w sekcji Poproś o dostęp do lokalizacji.

Dodatkowo w przypadku takich aplikacji należy jednoznacznie zadeklarować, android.hardware.location.network jako opcjonalne w pliku manifestu. Na przykład:

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

Takie podejście zapewnia maksymalną zgodność z urządzeniami w różnych branżach, więc maksymalna dostępność aplikacji bez różnic w kodzie w razie potrzeby.