我有简单的流程:当我点击按钮时,我应该只获得当前的纬度/经度, 我正在使用LocationListner,但问题是onLocationChange()方法仅在我更改位置时调用,否则给出0.00 / 0.00。谢谢我的帮助,请帮助我。
答案 0 :(得分: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) {
}
}
答案 1 :(得分:0)
您可以实现记住已传递位置的位置监听器,可能以某种方式对它们进行平均。
答案 2 :(得分:0)
你真的不能让Android立即为你提供当前的GPS位置你最好的选择是等到它获得位置更改更新或使用最后的已知值!
您可以使用上一个已知位置。
看看这里:
What is the simplest and most robust way to get the user's current location on Android?
希望这有帮助