8

speed il valore è sempre null in Android 5+. Usiamo questi:La velocità è "nulla" con il plug-in di geolocalizzazione su Android 5+

  • Nucleo: Cordova - 5.1.1
  • Piattaforma: Cordova-Android 4.0.2
  • versione del plugin: 1.0.1
  • dispositivi: Samsung Galaxy S4 (A5.0.1) , Nexus 5 (A5.1.1), LG G3 Stylus D690 (A5.0.2).

Abbiamo riscontrato questo problema subito dopo l'aggiornamento ad Android 5+.

Ancora funziona bene su Android 4 e iOS. Abbiamo provato sia getCurrentPosition e watchPosition - senza fortuna. HighAccuracy è true.

Abbiamo dovuto implementare soluzione alternativa per Android 5 utilizzando getCurrentPosition (invece di perfettamente funzionante watchPosition per altri sistemi operativi), che in molte volte i risultati nel calcolo di velocità per alcuni intervalli come fino a 400 km/h, mentre il calcolo più o meno precise velocità complessiva.

  • Ci sono permessi per Android 5 che ci mancano?
  • Cosa possiamo fare per risolvere questo problema?

Ci piacerebbe utilizzare un codice per tutte le piattaforme come dovrebbe, e continuare a utilizzare watchPosition come funziona.

  • Qualche suggerimento? È un problema noto?

Su una nota correlata: Esistono bug/problemi noti per Cordova con i dispositivi Galaxy in generale? Grazie!

risposta

1

Cordova non fornisce alcun codice nativo per la geolocalizzazione, basta aggiungere le autorizzazioni per attivare la geolocalizzazione Webview, quindi se qualcosa non funziona è il problema dell'implementazione del cromo.

Puoi provare a usare il plug-in crosswalk per vedere se la geolocalizzazione funziona meglio lì (aggiunge una versione aggiornata del web chromium al tuo progetto), o usare la versione 0.3.6 del plugin, dato che era l'ultima versione con codice nativo .

EDIT: c'è stato un errore nel passaggio i params da Cordova alla geolocalizzazione WebView che potrebbe causare il problema per, provare con l'ultima versione del plugin

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

navigator.geolocation.getCurrentPosition() è solo verificare la presenza di GPS quando l'opzione enableHighAccuracy è impostato come true (predefinito). È possibile impostare enableHighAccuracy come false.

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

Potrebbe essere necessario seguenti autorizzazioni

<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" /> 

Speranza che aiuta.

Problemi correlati