Ungefähren Standort abrufen

Aus Datenschutzgründen sollten App-Entwickler nur Berechtigungen für den ungefähren Standort anfordern. Apps, die eine ungefähre grobe Position benötigen, verwenden in der Regel die Netzwerkposition (FLP), da sie schnell ist und weniger Strom verbraucht.

Im Vergleich zu Android-basierten Mobilgeräten kann die Netzwerkpositionierung in Automotive-Apps schwieriger sein. Sie können zwei Android-APIs verwenden:

  • Bei der LocationManager API oder LM müssen Sie den bevorzugten Standortanbieter explizit angeben.

  • Die Google Play Services API bietet mit der Einführung des Anbieters für kombinierte Standortbestimmung (Fused Location Provider, FLP) eine einfachere Möglichkeit, mit Standortdaten zu arbeiten.

Viele Automotive-Apps verwenden FLP aus der Google Play Services (GPS) API anstelle von LM. FLP wählt den optimalen Standortanbieter basierend auf den Kriterien und Richtlinien für Standortanfragen (Stromverbrauch und Genauigkeit) aus, die vom Fahrzeug benötigt werden.

Stattdessen können Sie NETWORK_PROVIDER in LM sowie GPS_PROVIDER für genaue Positionen explizit anfordern und verwenden. Für GPS_PROVIDER sind die Berechtigungen android.permission.ACCESS_FINE_LOCATION erforderlich. In API 31 ist FUSED_PROVIDER, auf die zuvor nur über die GPS API zugegriffen werden konnte, jetzt als Standortanbieter für LM verfügbar. Eine einfachere Implementierung von FLP finden Sie unter FusedLocationProvider.java.

Es ist zwar möglich, GPS_PROVIDER nur mit groben Berechtigungen zu verwenden, aber das Framework verschlechtert die Genauigkeit künstlich, um den Erwartungen zu entsprechen. Für Entwickler, die Android-Smartphones im Blick haben, ist das wenig sinnvoll, da die allgemeine Verfügbarkeit schlecht ist und es oft länger dauert, eine grobe Position zu erhalten.

Netzwerkstandort im Automobilbereich

Die NETWORK_PROVIDER auf Android-Smartphones (mit Google Mobile Services) hat sich geändert. Der Standort wird nicht mehr nur anhand von Mobilfunkmasten in der Nähe ermittelt, sondern auch anhand von WLAN-Zugangspunkten oder sogar Bluetooth-Beacons. Für die Verwendung von NETWORK_PROVIDER ist möglicherweise eine Datenverbindung erforderlich.

Bei Automotive-Apps gelten andere Geräteeinschränkungen. Da GNSS normalerweise aktiviert ist, entstehen keine Nachteile durch erhöhten Strom- und Akkuverbrauch. Daher wird die IVI-Betriebszeit nicht beeinträchtigt. Wir bemühen uns, den Datenaustausch mit unseren Servern zu minimieren.

Viele Apps verwenden daher FLP aus der Play API anstelle von LM, da FLP automatisch das Richtige tut, indem es den Standortanbieter verwendet, der die Kriterien/Richtlinien für Standortanfragen (insbesondere Stromverbrauch und Genauigkeit) am besten erfüllt.

Im Gegensatz zu Mobilgeräten springen Fahrzeuge selten von einem Ort zum anderen. Die Fahrzeugposition ist in den meisten Fällen bekannt.

Netzwerkstandortanbieter

In den meisten Fahrzeugen sind die erforderlichen Telefonie-APIs nicht implementiert, um die erforderlichen Informationen zu einer Cell-ID (und Signalstärke) abzurufen. Da wir die Datennutzung minimieren, wird keine zusätzliche funktionale Implementierung von NLP bereitgestellt.

Anbieter für kombinierte Standortbestimmung

Das mobile FLP nutzt nicht nur Netzwerk- und GPS-Anbieter, sondern kombiniert auch Informationen von anderen Sensoren, um die Qualität der Standorte weiter zu verbessern. Die aktuelle Implementierung von FLP für Automotive nutzt die oben genannten Annahmen und verwendet GPS_PROVIDER als zugrunde liegende Quelle. Die Positionen werden aus GNSS abgeleitet und bei Bedarf werden einige Fehler hinzugefügt, um die Genauigkeit zu verringern. Zum Beispiel, wenn einem Client ungefähre Standorte zur Verfügung gestellt werden.

In sehr wenigen Fällen kann es daher länger als gewöhnlich dauern, bis die erste Position verfügbar ist. Zum Beispiel, wenn ein Fahrzeug oder genauer gesagt sein Standort-Subsystem zum ersten Mal verwendet wird oder nachdem es abgeschleppt wurde.

Apps für die Nutzung auf Mobilgeräten und im Auto entwickeln

Wir empfehlen, dass Apps, die auf Mobilgeräte und Autos ausgerichtet sind und keine höhere Genauigkeit erfordern, android.permission.ACCESS_COARSE_LOCATION nur anfordern und auf FLP zurückgreifen, wenn es verfügbar ist. Alternativ können Sie als letzten Ausweg GPS_PROVIDER direkt mit denselben Berechtigungen verwenden. Das Framework verringert die Genauigkeit der zugrunde liegenden GNSS-Position, um den API-Erwartungen zu entsprechen. Weitere Informationen zur Genauigkeit

Außerdem muss in diesen Apps das Feature android.hardware.location.network im Manifest als optional deklariert werden. Beispiel:

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

Dieser Ansatz sorgt für maximale Kompatibilität mit Geräten in allen Branchen und damit für maximale App-Verfügbarkeit ohne Codeunterschiede beim Abrufen von Positionen bei Bedarf.