Ungefähren Standort abrufen

Um die Privatsphäre der Nutzer zu schützen, sollten App-Entwickler nur Berechtigungen für den ungefähren Standort anfordern. Apps, die einen ungefähren Standort benötigen, verwenden in der Regel den Netzwerkstandort (FLP), da er schnell ist und weniger Strom verbraucht.

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

  • Mit der LocationManager API (LM) müssen Sie den bevorzugten Standortanbieter explizit angeben.

  • Die Google Play-Dienste API bietet mit der Einführung des Anbieters für kombinierte Standortbestimmung (FLP) eine einfachere Möglichkeit, mit dem Standort zu arbeiten.

Viele Automotive-Apps verwenden FLP aus der Google Play-Dienste API (GPS) anstelle von LM. FLP wählt den optimalen Standortanbieter basierend auf den Kriterien und Richtlinien für die Standortanfrage (Stromverbrauch und Genauigkeit) aus, die für das Fahrzeug erforderlich sind.

Alternativ können Sie NETWORK_PROVIDER in LM explizit anfordern und verwenden sowie GPS_PROVIDER für genaue Standorte, wobei die Berechtigungen android.permission.ACCESS_FINE_LOCATION verwendet werden. In API 31 ist FUSED_PROVIDER, der bisher nur über die GPS API zugänglich war, 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 Berechtigungen für den ungefähren Standort zu verwenden, aber das Framework verringert die Genauigkeit künstlich, um den Erwartungen zu entsprechen. Für Entwickler, die Android-Smartphones als Zielgruppe haben, ist das wenig sinnvoll, da die Verfügbarkeit insgesamt schlecht ist und es oft länger dauert, einen ungefähren Standort zu erhalten.

Netzwerkstandort in Automotive-Apps

Die Funktionsweise von NETWORK_PROVIDER auf Android-Smartphones (mit Google Mobile-Diensten) hat sich geändert. Der Standort wird nicht mehr nur anhand der 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.

Für Automotive-Apps gelten andere Geräteeinschränkungen. Da GNSS normalerweise aktiviert ist, entstehen keine Nachteile durch den erhöhten Strom- und Akkuverbrauch. Daher wird die Betriebszeit des IVI-Systems 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 direkt, da FLP automatisch die richtige Entscheidung trifft, indem es im Hintergrund den Standortanbieter verwendet, der die Kriterien/Richtlinien für die Standortanfrage (insbesondere Stromverbrauch und Genauigkeit) am besten erfüllt.

Im Gegensatz zu Mobilgeräten springen Fahrzeuge selten von einem Ort zum anderen. Der Standort des Fahrzeugs ist im Hintergrund meist bekannt.

Netzwerkstandortanbieter

Die meisten Fahrzeuge implementieren nicht die erforderlichen Telefonie-APIs, um die erforderlichen Informationen zu einer Mobilfunkzellen-ID (und Signalstärke) zu erhalten. Da wir die Datennutzung minimieren, wird keine zusätzliche funktionale Implementierung von NLP bereitgestellt.

Anbieter für kombinierte Standortbestimmung

Der mobile FLP verwendet nicht nur Netzwerk- und GPS-Anbieter auf intelligente Weise, sondern kombiniert auch Informationen von anderen Sensoren, um die Qualität der Standorte weiter zu verbessern. Die aktuelle Implementierung von FLP für Automotive-Apps nutzt dagegen die oben genannten Annahmen und verwendet GPS_PROVIDER immer als zugrunde liegende Quelle. Die Standorte werden von GNSS verfälscht, wobei bei Bedarf einige Fehler hinzugefügt werden, um die Genauigkeit zu verringern. Das ist beispielsweise der Fall, 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 der erste Standort verfügbar ist. Das ist beispielsweise der Fall, wenn ein Fahrzeug oder genauer gesagt sein Standortsubsystem zum ersten Mal verwendet wird oder nachdem es abgeschleppt wurde.

Apps für die Verwendung auf Mobilgeräten und in Fahrzeugen entwickeln

Wir empfehlen, dass Apps, die auf Mobilgeräten und in Fahrzeugen verwendet werden 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 des zugrunde liegenden GNSS-Standorts, um den Erwartungen der API zu entsprechen. Weitere Informationen finden Sie unter Genauigkeit.

Außerdem müssen diese Apps das android.hardware.location.network Feature optional in ihrem Manifest explizit als optional deklarieren. 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 Standorten, wenn sie benötigt werden.