La geolocalización de JavaScript en Android no funciona

Estoy desarrollando un sitio web que se basa en extraer los datos de geolocalización de un usuario móvil. Lo estoy haciendo de la manera típica a través de:

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);
}

Esto siempre falla con [object PositionError] en la función errorOnLocate, incluso si cambio el orden del método de geolocalización.

Esto está en un HTC Hero con Android 2.1 usando cualquier navegador incorporado. Mi GPS está encendido y he dado instrucciones al navegador para que permita que los sitios web vean mi ubicación. La función de "ubicación" en la aplicación nativa de google map que viene en el teléfono recoge mi ubicación muy bien

Además, si visito mi sitio usando FireFox 3.5 en mi computadora personal, encontrará mi ubicación correctamente (creo que usa una combinación de puntos de datos ip y ap). De cualquier manera, usa el mismo javascript.

EDITAR: Esto es html / js en un navegador, no una aplicación nativa. También el mensaje de error exacto es "El último proveedor de ubicación fue deshabilitado"

Respuestas a la pregunta(4)

Su respuesta a la pregunta