2013-04-28 9 views
7

Sto usando l'API PhoneGap per la geolocalizzazione. Ho impostato l'opzione enableHighAccuracy su "true". Il codice 3, opzione scaduta scaduta continua a spuntare, ma solo su alcuni dispositivi Android e più di una volta durante l'utilizzo dell'applicazione.geolocalizzazione di PhoneGap, Codice 3 - timeout scaduto continua a spuntare su alcuni dispositivi Android

Please help me ... Perché è così che non riesce solo su alcuni dispositivi Android. Se imposto la precisione su false, quanta differenza otterrò nel recuperare le coordinate ...

risposta

2

Ho riscontrato lo stesso errore su Samsung Galaxy Note II (Android 4.1.1). Per qualche ragione, quando 'Usa reti wireless' sotto le impostazioni di posizione è attivo, ma se è spento riceve l'errore di codice 3. Non è successo su Nexus 7 (4.2.2).

+0

Grazie, è risolvere il mio problema che mi andando fuori di testa. È perché il dispositivo non usa automaticamente un livello elevato di acurracy e abbiamo bisogno di impostarlo manualmente. – klaudia

9

riuscito a risolvere il mio problema con il codice qui sotto:

var options = {maximumAge: 0, timeout: 10000, enableHighAccuracy:true}; 
navigator.geolocation.getCurrentPosition(onSuccess, onError, options); 

Sembra che Samsung Galaxy telefoni non piace mettere in cache la posizione GPS.

4

Ok, ecco come risolvere il problema:

  1. Aggiungi un timeout e impostare enableHighAccuracy:

    navigator.geolocation.getCurrentPosition(onSuccess, onError, {timeout: 10000, enableHighAccuracy: true}); 
    

    In alcuni emulatori è necessario impostare enableHighAccuracy su false, in modo da provare che, se ancora non funziona

  2. In Android, l'emulatore non legge i valori GPS, quindi è necessario inviarli tramite la riga di comando. Abbiamo bisogno di iniziare una sessione telnet alla porta che l'emulatore è in esecuzione (è possibile controllare la porta nel titolo della finestra dell'emulatore, il numero all'inizio, nel mio caso 5554):

    telnet localhost 5554 
    

E quindi eseguire il comando

geo fix -122.4 37.78 

Se si chiude l'applicazione è necessario inviare nuovamente la geolocalizzazione, quindi se non funziona, basta eseguire il comando geo fix poco dopo l'apertura l'applicazione, prima che l'evento di timeout.

+0

Il più grande "timeout" e "enableHighAccuracy" hanno risolto il mio problema. Grazie! – StrongLucky

+0

Ho avuto lo stesso problema. L'impostazione di 'enableHighAccuracy' su' false' e ​​il riavvio dell'emulatore (da Android SDK) risolve il mio problema. –

0

Ouch, ha riscontrato lo stesso problema qui. Vorrei che ci fosse un modo migliore per farlo, piuttosto che chiedere agli utenti di modificare gentilmente le proprie impostazioni GPS. Samsung Galaxy III

(funziona quando "utilizzare le reti wireless per trovare la posizione" fallisce senza questa opzione)

Problemi correlati