1

我有简单的流程:当我单击按钮时,我应该只在那个时候获得当前的纬度/经度,我为此使用 LocationListner 但问题是 onLocationChange() 方法仅在我更改位置时调用,否则会给出 0.00/0.00 . 我该怎么办,请帮帮我。

4

3 回答 3

1
 LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
  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();

    Geocoder gcd = new Geocoder(getApplicationContext(),
            Locale.getDefault());
    try {
        mAddresses = gcd.getFromLocation(loc.getLatitude(),
                loc.getLongitude(), 1);

    } catch (IOException e) {

    }

    String cityName = (mAddresses != null) ? mAddresses.get(0)
            .getLocality() : TimeZone.getDefault().getID();
    String countryName = (mAddresses != null) ? mAddresses.get(0)
            .getCountryName() : Locale.getDefault().getDisplayCountry()
            .toString();


    mCurrentSpeed.setText("Longitude"+loc.getLongitude()+" Latitude"+loc.getLatitude());
}

@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) {
}
}
于 2012-10-21T06:00:48.843 回答
0

您可以实现您的位置侦听器来记住交付的位置,可能以某种方式对它们进行平均。

于 2012-10-21T06:04:13.500 回答
0

您不能真正要求 Android 立即为您提供当前的 GPS 位置,您最好的选择是等到它获得位置更改更新或使用最后已知值!

您可以使用最后一个已知位置。

看看这里:

在 Android 上获取用户当前位置的最简单、最可靠的方法是什么?

希望这可以帮助

于 2012-10-21T11:19:49.930 回答