Frage Geschwindigkeit ist "Null" mit Geolocation-Plugin auf Android 5+


speed Wert ist immer null in Android 5+. Wir benutzen diese:

  • Kern: Cordova - 5.1.1
  • Plattform: Cordova-Android 4.0.2
  • Plugin-Version: 1.0.1
  • Geräte: Samsung Galaxy S4 (A5.0.1), Nexus 5 (A5.1.1), LG G3 Stylus D690 (A5.0.2).

Wir haben dieses Problem jetzt, nachdem wir auf Android 5+ aktualisiert haben.

Funktioniert immer noch gut auf Android 4 und iOS. Wir haben beides versucht getCurrentPosition und watchPosition - kein Glück. HighAccuracy ist true.

Wir mussten Workarounds für Android 5 mit implementieren getCurrentPosition (anstatt perfekt zu arbeiten watchPosition für andere Betriebssysteme), was in vielen Fällen dazu führt, dass die Geschwindigkeit für einige Intervalle mit bis zu 400 km / h berechnet wird, während insgesamt mehr oder weniger genaue Geschwindigkeit berechnet wird.

  • Gibt es Berechtigungen für Android 5, die uns fehlen?
  • Was können wir tun, um dieses Problem zu lösen?

Wir möchten einen Code für alle Plattformen verwenden, wie er sein sollte, und weiterhin verwenden watchPosition wie es gut funktioniert.

  • Irgendwelche Vorschläge? Ist das ein bekanntes Problem?

Zu einer verwandten Anmerkung: Gibt es irgendwelche bekannten Fehler / Probleme für Cordova mit Galaxy-Geräten im Allgemeinen? Vielen Dank!


8
2017-07-29 15:15


Ursprung


Antworten:


navigator.geolocation.getCurrentPosition() Ist nur Option für GPS aktiviert enableHighAccuracy ist eingestellt als true(Standard). Du könntest einstellen enableHighAccuracy wie false.

{enableHighAccuracy:false,maximumAge:Infinity, timeout:60000}

Sie benötigen möglicherweise folgende Berechtigungen

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

Ich hoffe es hilft.


2
2018-01-12 14:27



Cordova stellt keinen systemeigenen Code für die Geolokalisierung zur Verfügung, sondern fügt nur die Berechtigungen zur Aktivierung der Webansicht-Geolokalisierung hinzu. Wenn also etwas nicht funktioniert, liegt das Problem an der Chrom-Implementierung.

Sie können versuchen, crosswalk plugin zu verwenden, um zu sehen, ob geolocation dort besser funktioniert (es fügt Ihrem Projekt ein aktualisiertes Chrom-Webview hinzu), oder verwenden Sie die Version 0.3.6 des Plugins, da dies die neueste Version mit nativem Code war.

BEARBEITEN: Es gab einen Fehler beim Übergeben der Parameter von cordova an die Webansicht-Geolocation, die Ihr Problem verursachen könnte, versuchen Sie es mit der neuesten Version des Plugins

cordova plugin add https://github.com/apache/cordova-plugin-geolocation

1
2018-01-12 08:56