Getting Current Location Longitude and Latitude without Change my Position

╄→гoц情女王★ 提交于 2019-12-11 11:40:33

问题


I can find the current location latitude and longitude.But These data are not shown before change my current position.I want to get current location longitude and latitude without change my position.

package com.example.gps;

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.widget.Button;
import android.widget.Toast;

import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
public class MainActivity extends Activity {
MapView m;
Button b,b1,b2;
MapController mc;double l1;double l2;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    LocationManager mlocManager = 

        (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    boolean net = mlocManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    Location l = null;
    if(net)
        l= mlocManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    if(l!=null)
    {
        l1 = l.getLongitude();
        l2 = l.getLatitude();
    }
    Toast.makeText(getApplicationContext(),l1+".."+l2, Toast.LENGTH_LONG).show();
        LocationListener mlocListener = new MyLocationListener(); 
        mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener); 


}

public class MyLocationListener implements LocationListener 

{ 

@Override 

public void onLocationChanged(Location loc) 

{ 

loc.getLatitude(); 

loc.getLongitude(); 

String Text = "My current location is: "+ 

"Latitud = " + loc.getLatitude() + 

"Longitud = " + loc.getLongitude(); 



Toast.makeText( getApplicationContext(), 

Text, 

Toast.LENGTH_SHORT).show(); 

} 



@Override 

public void onProviderDisabled(String provider) 

{ 

Toast.makeText( getApplicationContext(), 

"Gps Disabled", 

Toast.LENGTH_SHORT ).show(); 

} 



@Override 

public void onProviderEnabled(String provider) 

{ 

Toast.makeText( getApplicationContext(), 

"Gps Enabled", 

Toast.LENGTH_SHORT).show(); 

} 



@Override 

public void onStatusChanged(String provider, int status, Bundle extras) 

{ 



} 

}
}

Since this code returns data from onLocationChanged(Location loc) method so i don't get data without change my location after install it on my device.But i need latitude ,longitude without change my location.Is it possible.Please give a solution


回答1:


try this code:

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    // Define the criteria how to select the locatioin provider -> use
    // default
    Criteria criteria = new Criteria();
    provider = locationManager.getBestProvider(criteria, false);
    Location location = locationManager.getLastKnownLocation(provider);

    // Initialize the location fields
    if (location != null) {
      System.out.println("Provider " + provider + " has been selected.");
      onLocationChanged(location);
    } else {
      latituteField.setText("Location not available");
      longitudeField.setText("Location not available");
      System.out.println("Location not avilable");
    }
  }

  /* Request updates at startup */
  @Override
  protected void onResume() {
    super.onResume();
    locationManager.requestLocationUpdates(provider, 400, 1, this);
  }

  /* Remove the locationlistener updates when Activity is paused */
  @Override
  protected void onPause() {
    super.onPause();
    locationManager.removeUpdates(this);
  }

  @Override
  public void onLocationChanged(Location location) {
    double lat = (double) (location.getLatitude());
    double lng = (double) (location.getLongitude());
    latituteField.setText(String.valueOf(lat));
    longitudeField.setText(String.valueOf(lng));
    Log.i(TAG, "Lattitude:" +lat);
    Log.i(TAG, "Longitude:" +lng);
  }


来源:https://stackoverflow.com/questions/12618484/getting-current-location-longitude-and-latitude-without-change-my-position

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!