Ungefähren Standort abrufen

Aus Datenschutzgründen wird App-Entwicklern empfohlen, nur grobe Berechtigungen zur Standortermittlung anzufordern. Anwendungen, die eine ungefähre ungefähre Position benötigen, verwenden in der Regel den Fused Network Location (FLP), da sie schnell sind und weniger Strom verbrauchen. Im Vergleich zu Android-basierten Mobilgeräten kann die Standortermittlung in Auto-Apps schwieriger sein. Sie können zwei Android APIs verwenden:

  • Für die LocationManager API müssen Sie den bevorzugten Standortanbieter mithilfe von requestLocationUpdates explizit angeben.

  • Die Google Play Services API bietet eine einfachere Möglichkeit, um mit dem Standort in FusedLocationProviderClient zu arbeiten.

Viele Automobil-Apps verwenden den FLP aus der Google Play Services API anstelle von LocationManager. FLP wählt den optimalen Standortanbieter anhand der Kriterien und Richtlinien (Leistung und Genauigkeit) der Standortanfrage aus, die das Fahrzeug benötigt.

Sie können stattdessen auch explizit NETWORK_PROVIDER sowie GPS_PROVIDER für bessere Positionen anfordern und verwenden, wobei die Berechtigungen android.permission.ACCESS_FINE_LOCATION verwendet werden. Unter Android 12 (API-Level 31) und höher ist FUSED_PROVIDER, das bisher nur über die Google Play Services API zugänglich war, als Standortanbieter für LocationManager verfügbar. Eine Implementierung von FLP finden Sie in FusedLocationProvider.java.

Es ist zwar möglich, GPS_PROVIDER nur mit groben Berechtigungsrechten zu verwenden – das Framework beeinträchtigt die Genauigkeit künstlich, um den Erwartungen gerecht zu werden –, für Entwickler, die auf Android-Smartphones abzielen, ist es jedoch wenig sinnvoll, da die Gesamtverfügbarkeit schlecht und oft langsamer ist, eine ungefähre Position zu bestimmen.

Netzwerkstandort in der Automobilbranche

Das NETWORK_PROVIDER, das auf Android-Smartphones (mit Google Mobile-Diensten) verwendet wird, bestimmt den Standort anhand von in der Nähe befindlichen Mobilfunkmasten, WLAN-Zugangspunkten und Bluetooth-Beacons (BT-Beacons). Daher ist für NETWORK_PROVIDER möglicherweise eine Datenverbindung erforderlich.

Für Automobil-Apps gibt es unterschiedliche Geräteeinschränkungen. Da das globale Navigationssatellitensystem (GNSS) in der Regel eingeschaltet ist, fallen keine Strafen aufgrund erhöhter Energie- und Akkunutzung an. So wird die IVI-Verfügbarkeit nicht beeinträchtigt. Wir bemühen uns, den Datenaustausch mit unseren Servern so gering wie möglich zu halten.

Viele Apps verwenden daher FLP aus der Play API anstelle von LocationManager direkt, da FLP die intelligente Funktion automatisch ausführt, indem es den Standortanbieter verwendet, der Kriterien/Richtlinien für Standortanfragen (nämlich Leistung und Genauigkeit) am besten erfüllen kann.

Im Gegensatz zu Mobilgeräten kommt es selten vor, dass Fahrzeuge von einem Ort zum anderen springen. Die Position des Fahrzeugs ist meist unter der Motorhaube bekannt.

Anbieter von Netzwerkstandorten (Network Location Provider, NLP)

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

Anbieter für kombinierte Standortbestimmung

Der mobile FLP kombiniert neben der intelligenten Nutzung von Netzwerk- und GPS-Anbietern auch Informationen von anderen Sensoren, um die Standortqualität weiter zu verbessern. Die aktuelle Implementierung des FLP von Automotiven nutzt dagegen die oben genannten Annahmen und nutzt immer GPS_PROVIDER als zugrunde liegende Quelle. Es verschiebt die Positionen von GNSS und fügt einige Fehler hinzu, um bei Bedarf ungenauer zu werden. Das ist beispielsweise der Fall, wenn einem Client ungefähre Standorte angegeben werden.

Daher kann es in einigen Fällen länger als gewöhnlich dauern, bis die erste Position verfügbar ist. Dies ist beispielsweise der Fall, wenn ein Fahrzeug zum ersten Mal verwendet wird oder, um genauer zu sein, sein Standortsubsystem oder nach dem Abschleppen.

Apps für die Nutzung auf Mobilgeräten und in der Automobilbranche entwickeln

Für Apps, die auf Mobilgeräte und Automobilgeräte ausgerichtet sind und keine höhere Genauigkeit erfordern, fordern Sie nur android.permission.ACCESS_COARSE_LOCATION an und verwenden Sie FLP, sofern verfügbar. Alternativ können Sie GPS_PROVIDER direkt mit denselben Berechtigungen verwenden. Das Framework schränkt die Genauigkeit der zugrunde liegenden GNSS-Position ein, um die API-Erwartungen einzuhalten. Weitere Informationen finden Sie unter Genauigkeit unter Berechtigungen zur Standortermittlung anfordern.

Außerdem muss das Feature android.hardware.location.network in diesen Anwendungen in ihrem Manifest explizit 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 aus verschiedenen Branchen und somit auch für maximale App-Verfügbarkeit ohne Codeunterschiede zum Abrufen von Positionen bei Bedarf.