Геолокация JavaScript на Android не работает

Я занимаюсь разработкой веб-сайта, который опирается на данные геолокации мобильного пользователя. Я делаю это типичным способом через:

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

Это всегда завершается ошибкой с [object PositionError] в функции errorOnLocate, даже если я переключаю порядок методов геолокации.

Это на HTC Hero с android 2.1 с использованием любого встроенного браузера. Мой gps включен, и я дал указание браузеру разрешить веб-сайтам просматривать мое местоположение. Функция "местоположение" в родном приложении карты Google, которое приходит на телефон, точно определяет мое местоположение

Более того, если я захожу на мой сайт с помощью FireFox 3.5 на моем персональном компьютере, он будет правильно определять мое местоположение (я считаю, что он использует комбинацию точек данных ip и ap). В любом случае, он использует тот же JavaScript.

РЕДАКТИРОВАТЬ: это HTML / JS в браузере, а не нативное приложение. Также точное сообщение об ошибке: «Последний поставщик местоположения был отключен»

Ответы на вопрос(4)

Ваш ответ на вопрос