title: Passing GPS LonLat from Android GPS to WebPage (javascript)
body: <p>I have the following code but the lon/lat seems to be returning null;</p>
  
  <pre><code>package com.domain.www;
  
  import android.app.Activity;
  import android.content.Context;
  import android.content.pm.ActivityInfo;
  import android.location.Location;
  import android.location.LocationListener;
  import android.location.LocationManager;
  import android.location.Criteria;
  import android.os.Bundle;
  import android.webkit.WebView;
  import android.webkit.WebViewClient;
  
  public class WebMapActivity extends Activity implements LocationListener {
  
      private static final String MAP_URL = "http://www.yahoo.com/";
      private WebView webView;
      private Location mostRecentLocation;
  
      @Override
      /** Called when the activity is first created. */
      public void onCreate(Bundle savedInstanceState) {
          try {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.main);
              getLocation();
              setupWebView();
              this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
          } catch (Exception e) {
              e.printStackTrace();
          }
  
      }
  
      /** Sets up the WebView object and loads the URL of the page **/
      private void setupWebView() {
          /*
              final String centerURL = "javascript:centerAt("
                      + mostRecentLocation.getLatitude() + ","
                      + mostRecentLocation.getLongitude() + ")"; */
  
              webView = (WebView) findViewById(R.id.webview);
              webView.getSettings().setJavaScriptEnabled(true);
  
              webView.setWebViewClient(new WebViewClient() {
                  @Override
                  public void onPageFinished(WebView view, String url)
                  {
                      String jsCode = "javascript:alert('" + getMostRecentLocation("lon") + "')";
                      webView.loadUrl(jsCode.toString());
                  }
              });
  
  
              webView.loadUrl(MAP_URL);
      }
  
      /**
       * The Location Manager manages location providers. This code searches for
       * the best provider of data (GPS, WiFi/cell phone tower lookup, some other
       * mechanism) and finds the last known location.
       **/
      private void getLocation() {
          LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
          Criteria criteria = new Criteria();
          criteria.setAccuracy(Criteria.ACCURACY_FINE);
          String provider = locationManager.getBestProvider(criteria, true);
  
          // In order to make sure the device is getting location, request
          // updates. locationManager.requestLocationUpdates(provider, 1, 0,
          // this);
          //locationManager.requestLocationUpdates(provider, 1, 0, this);
          setMostRecentLocation(locationManager.getLastKnownLocation(provider));
      }
  
      /** Sets the mostRecentLocation object to the current location of the device **/
      @Override
      public void onLocationChanged(Location location) {
          setMostRecentLocation(location);
      }
  
      /**
       * The following methods are only necessary because WebMapActivity
       * implements LocationListener
       **/
      @Override
      public void onProviderDisabled(String provider) {
      }
  
      @Override
      public void onProviderEnabled(String provider) {
      }
  
      @Override
      public void onStatusChanged(String provider, int status, Bundle extras) {
      }
  
      /**
       * @param mostRecentLocation the mostRecentLocation to set
       */
      public void setMostRecentLocation(Location mostRecentLocation) {
          this.mostRecentLocation = mostRecentLocation;
      }
  
      /**
       * @return the mostRecentLocation
       */
      public double getMostRecentLocation(String lonLat) {
          double gValue = 0.00;
          try
          {
          Location xx = this.mostRecentLocation;  //Used as a breakpoint
          if(lonLat == "lat") gValue = this.mostRecentLocation.getLatitude();
          if(lonLat == "lon") gValue = this.mostRecentLocation.getLongitude();        
  
          } catch (Exception e) {
              e.printStackTrace();
          }
  
          return gValue;  
      }
  
  }
  </code></pre>
  
  <p>Ignore the URL bit that would be a page with a google map on it; but for debugging purposes I'd prefer it to just spit out an alert with the values in it.</p>
  
  <p>Any ideas whats wrong? Target Emulators (Google API 1.5 API(3))</p>
  
  <p>Thanks</p>