2012-10-09 16 views
6

PhoneGap Version: 2.0.0. Android-API-Stufe 16 (Version 4.0.3) Codebeispiel, die einen Fehler meldet:TelefonGap. Der Geolocation-Dienst konnte nicht gestartet werden

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

function onSuccess(position) { 
    console.log('latitude: '+ position.coords.latitude); 
    console.log('longitude: '+ position.coords.longitude);     
} 

function onError(error) { 
    console.log('Appeared error : '+ error.message);     
} 

immer einen Fehler in Emulator immer Failed to start Geolocation service, Fehlercode 2. Auch wenn senden GPS-Koordinaten durch Android-Konsole oder DDMS

Android Manifest Berechtigungen:

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

Antwort

6

testen Sie dies auf dem Emulator nur? Der Geolocation-Dienst schlägt immer in meinem Android-Emulator fehl, aber nicht auf einem echten Gerät.

EDIT: Bitte versuchen Sie es mit dem folgenden Code

document.addEventListener("deviceready", onDeviceReady, false); 

function onDeviceReady() { 
    navigator.geolocation.getCurrentPosition(myPositionSuccess, myPositionError, {maximumAge: 300000, timeout:10000, enableHighAccuracy : true}); 
}; 
+0

Ich habe ein echtes Gerät mit Android 2.3 Version, aber kein Gerät mit 4.x Version. Also teste ich im Emulator. Ja, im echten Gerät gibt es keinen solchen Fehler. Nur im Emulator. –

+0

Versuchen Sie, den eventListener hinzuzufügen. – jmpenetra

+0

@ JoãoPenetra Ich habe dies zu meinem Code hinzugefügt und es hat keine Fehler zurückgegeben! Dank dafür! Aber ... jetzt verdoppelt sich meine JSONP-Anfrage auf Google Fusion Tables, die auch den Ort nutzt. Können Sie sich einen Grund vorstellen, warum sie mit der 'enableHighAccuracy' zwei Anrufe tätigen würde? Ohne das gibt es nur 1 Datensatz zurück, sondern zuerst einen Fehler. Hier ist die Datei: https://github.com/jamez14/TrailFinder/blob/master/TrailFinder/www/js/map.js – jamez14

6

Sie benötigen die enableHighAccuracy Option true einzustellen, während Sie die Lage zu bekommen versuchen.

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

Außerdem zu geben Sie die Koordinaten Ihrer Position im Emulator,

Eklipse -> Perspektive öffnen -> DDMS -> Emulator Steuerung -> Location Steuert

die angeben Koordinaten der Position und drücken Sie "Senden".

0

Ich habe versucht, dieses Problem seit Wochen zu beheben. Ich suche das Netz und es scheint, dass die meisten Leute dieses Problem bezüglich phonegap haben, wenn sie für Android entwickeln. Die Lösung bestand darin, meinen Code auf einem Gerät mit GPRS zu testen. Stellen Sie außerdem sicher, dass vor dem Ausführen Ihres Codes Ihr GPRS und WLAN aktiviert ist. Verwenden Sie den Emulator nicht zum Testen von GPRS, da viele Funktionen fehlen und Fehler auftreten.

Verwandte Themen