Javascript Geolocation auf Android funktioniert nicht

Ich entwickle eine Website, die auf dem Abrufen der Geolokalisierungsdaten eines mobilen Benutzers beruht. Ich mache es auf die typische Art und Weise über:

function initialize() {
   if(window.google && google.gears) {
        var geo = google.gears.factory.create('beta.geolocation');
        geo.getCurrentPosition(useLocation, errorOnLocate);
   }
   else if(navigator.geolocation) {
       navigator.geolocation.getCurrentPosition(useLocation, errorOnLocate);
   }
   else {
       alert("no geo found");
   }
}

function errorOnLocate(message)
{
    alert(message);
    zoomTo(-34.397, 150.644);
}

Dies schlägt immer mit [object PositionError] in der errorOnLocate-Funktion fehl, auch wenn ich die Reihenfolge der Geolocation-Methode ändere.

Dies ist auf einem HTC Hero mit Android 2.1 und verwendet den eingebauten Browser. Mein GPS ist aktiviert und ich habe den Browser angewiesen, Websites die Anzeige meines Standorts zu ermöglichen. Die Funktion "Standort" in der nativen Google Map-Anwendung, die auf dem Telefon verfügbar ist, erfasst meinen Standort in Ordnung.

Wenn ich meine Site mit FireFox 3.5 auf meinem PC besuche, wird mein Standort korrekt ermittelt (ich glaube, es wird eine Kombination aus IP- und AP-Datenpunkten verwendet). In beiden Fällen wird dasselbe Javascript verwendet.

EDIT: Dies ist html / js in einem Browser, keine native App. Außerdem lautet die genaue Fehlermeldung "Der Anbieter des letzten Standorts wurde deaktiviert"

Antworten auf die Frage(8)

Ihre Antwort auf die Frage