geolocalização javascript no android não funciona

Estou desenvolvendo um site que depende da extração dos dados de geolocalização de um usuário móvel. Eu estou fazendo isso da maneira típica via:

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

Isso sempre falha com [object PositionError] na função errorOnLocate, mesmo que eu mude a ordem do método de geolocalização.

Este é um HTC Hero com Android 2.1, usando qualquer navegador embutido. Meu GPS está ativado e eu instruí o navegador a permitir que sites visualizem minha localização. O recurso "local" no aplicativo nativo do google map que vem ao telefone seleciona minha localização muito bem

Além disso, se eu visitar o meu site usando o FireFox 3.5 no meu computador, ele encontrará minha localização corretamente (acredito que ele usa uma combinação de pontos de dados ip e ap). De qualquer forma, ele usa o mesmo javascript.

Edição: Este é html / js em um navegador, não um aplicativo nativo. A mensagem de erro exata também é 'O último provedor de localização foi desativado'

questionAnswers(4)

yourAnswerToTheQuestion