Ungefähren Standort abrufen

Um die Privatsphäre der Benutzer zu respektieren, werden App-Entwickler aufgefordert, nur grobe Standortberechtigungen anzufordern. Apps, die eine ungefähre grobe Position benötigen, verwenden normalerweise den Netzwerkstandort (FLP), da dieser schnell ist und weniger Strom verbraucht.

Im Vergleich zu Android-basierten Mobilgeräten kann die Netzwerklokalisierung in Automobil-Apps eine größere Herausforderung darstellen. Sie können zwei Android-APIs verwenden:

Viele Automobil-Apps verwenden FLP von der Google Play Services (GPS) API anstelle von LM. FLP wählt den optimalen Standortanbieter basierend auf den vom Fahrzeug benötigten Standortanfragekriterien und -richtlinien (Leistung und Genauigkeit) aus.

Sie können stattdessen explizit NETWORK_PROVIDER in LM anfordern und verwenden, sowie GPS_PROVIDER für Feinpositionen, das die Berechtigungen android.permission.ACCESS_FINE_LOCATION verwendet. In API 31 ist FUSED_PROVIDER , auf den zuvor nur über die GPS-API zugegriffen werden konnte, jetzt als Standortanbieter für LM verfügbar. Sie können eine einfachere Implementierung von FLP in FusedLocationProvider.java anzeigen.

Während es möglich ist, GPS_PROVIDER nur mit groben Berechtigungsrechten zu verwenden, verringert das Framework die Genauigkeit künstlich, um sie an die Erwartungen anzupassen. Für Entwickler, die auf Android-Telefone abzielen, ist dies jedoch wenig sinnvoll, da die Gesamtverfügbarkeit schlecht ist und es oft langsamer ist, eine grobe Position zu erhalten.

Netzwerkstandort im Automobilbereich

Der NETWORK_PROVIDER der auf Android-Telefonen (mit Google Mobile Services) verwendet wird, hat sich von der ausschließlichen Standortbestimmung basierend auf nahegelegenen Mobilfunkmasten auf die Verwendung von Wi-Fi-Zugangspunkten oder sogar Bluetooth (BT)-Beacons geändert. Für die Verwendung von NETWORK_PROVIDER ist möglicherweise eine Datenverbindung erforderlich.

Für Automobil-Apps gelten andere Gerätebeschränkungen. Da GNSS normalerweise aktiviert ist, entstehen keine Nachteile durch erhöhten Strom- und Batterieverbrauch. Dadurch wird die Betriebszeit von IVI nicht beeinträchtigt. Wir sind bestrebt, den Datenaustausch mit unseren Servern zu minimieren.

Viele Apps verwenden daher FLP aus der Play-API anstelle von LM direkt, da FLP automatisch die clevere Sache macht, indem es den Standortanbieter verwendet, der die Kriterien/Richtlinien für Standortanfragen (nämlich Leistung und Genauigkeit) unter der Haube am besten erfüllen kann.

Im Gegensatz zu mobilen Geräten scheinen Fahrzeuge selten von einem Ort zum anderen zu springen . Die Position des Fahrzeugs unter der Motorhaube ist meist bekannt.

Netzwerkstandortanbieter

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

Anbieter von Fused-Standorten

Das mobile FLP nutzt nicht nur Netzwerk- und GPS-Anbieter intelligent, sondern führt auch Informationen von anderen Sensoren zusammen, um die Qualität der Standorte weiter zu verbessern. Die aktuelle Implementierung von Automotive's FLP hingegen nutzt die oben genannten Annahmen und verwendet ständig GPS_PROVIDER als zugrunde liegende Quelle. Es verfälscht die Positionen aus dem GNSS und fügt einige Fehler hinzu, um bei Bedarf ungenauer zu sein. Zum Beispiel, wenn einem Kunden grobe Standorte zur Verfügung gestellt werden.

Daher kann es in sehr wenigen Fällen länger als üblich dauern, bis die erste Stelle verfügbar ist. Zum Beispiel beim allerersten Einsatz eines Fahrzeugs bzw. seines Ortungssubsystems oder nach dem Abschleppen.

Entwerfen Sie Apps für mobile und Automobilanwendungen

Wir empfehlen, dass Apps, die auf Mobil- und Automobilgeräte ausgerichtet sind und keine höhere Präzisionsqualität erfordern, nur android.permission.ACCESS_COARSE_LOCATION anfordern und auf die Verwendung von FLP zurückgreifen, sofern verfügbar. Alternativ können Sie als letzten Ausweg GPS_PROVIDER direkt mit denselben Berechtigungen verwenden. Das Framework verringert die Präzision der zugrunde liegenden GNSS-Position, um sie an die API-Erwartungen anzupassen. Weitere Informationen finden Sie unter Genauigkeit .

Darüber hinaus müssen diese Apps in ihrem Manifest die Funktion android.hardware.location.network explizit als optional deklarieren. Zum Beispiel:

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

Dieser Ansatz gewährleistet maximale Kompatibilität mit Geräten in allen Branchen und damit maximale App-Verfügbarkeit ohne Codeunterschiede zum Abrufen von Positionen bei Bedarf.