Невозможно получить GPS-координаты с помощью Javascript в браузере Android

Я очень новичок в кодировании Android, Java и javascript.

Я пытаюсь получить текущие координаты GPS co -и затем отслеживать их на устройстве Android. Я использую webview, и большая часть кода написана на javascript.

Я много искал в течение нескольких дней и пробовал много разных способов, но я не могу получить координаты GPS -на устройстве Android. Пожалуйста, взгляните на код и помогите мне понять, почему я не получаю данные о местоположении GPS.

Несколько вещей, на которые стоит обратить внимание: -1. Я загрузил и проверил другие сенсорные приложения и вижу, что текущие координаты GPS -отображаются (, поэтому GPS работает на устройстве ). 2. Когда я запускаю свой код, я вижу значок поиска GPS в области уведомлений, он продолжает мигать, но никогда не исправляет. 3. Когда я запускаю только файл HTML с javascript в браузере ноутбука, он запрашивает разрешение на совместное использование местоположения, а затем дает координаты co -,однако тот же файл ничего не показывает в андроиде.

Пожалуйста, взгляните на код ниже и помогите мне понять это. Я много пробовал и пишу это как свою последнюю надежду.

Файл манифеста имеет следующие разрешения-

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />

Основной код Java в Android имеет-

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    webView = new WebView(this);  
    webView.getSettings().setJavaScriptEnabled(true);   
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.getSettings().setUseWideViewPort(true);
    webView.loadUrl("file:///android_asset/mymap.html");
    setContentView(webView);
}

И файл HTML с javascript-

<!DOCTYPE html>
<html>
<body onunload="OnUnload()" onload="getLocation()">
<p id="demo">Your coordinates:</p>
<script>
var watchID;
var x=document.getElementById("demo");
function getLocation()
  {
  if (navigator.geolocation)
    {
       var options = {maximumAge:600000, timeout:100000, enableHighAccuracy: true};
       watchID = navigator.geolocation.watchPosition(showPosition,showError,options);
    }
  else{x.innerHTML="Geolocation is not supported by this browser.";}
  }
function showPosition(position)
  {
  x.innerHTML="Latitude: " + position.coords.latitude + 
  "<br />Longitude: " + position.coords.longitude;  
  }
function showError(error)
  {
  switch(error.code) 
    {
    case error.PERMISSION_DENIED:
      x.innerHTML="User denied the request for Geolocation."
      break;
    case error.POSITION_UNAVAILABLE:
      x.innerHTML="Location information is unavailable."
      break;
    case error.TIMEOUT:
      x.innerHTML="The request to get user location timed out."
      break;
    case error.UNKNOWN_ERROR:
      x.innerHTML="An unknown error occurred."
      break;
    }
  }

function OnUnload()
{
   alert ("The current document will be unloaded!");
   navigator.geolocation.clearWatch(watchID);
}  
</script>
</body>
</html>

Заранее большое спасибо, топор

6
задан Valery Viktorovsky 18 September 2015 в 08:38
поделиться