我想获得移动当前位置,当我安装应用程序时,比第一次获得正确的lat长,但比每次显示第一次得到location.please给我正确的代码获取每次正确的lat长。 _在排序我的位置不是更新,或位置缓存不清楚。 - >我的代码
public class MyLocationListener实现了LocationListener {
private LocationManager mLocationManager;
private Location currentLocation;
public MyLocationListener(Context context) {
mLocationManager = (LocationManager) context
.getSystemService(Context.LOCATION_SERVICE);
currentLocation = mLocationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
mLocationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 0, this);
}
public Location getBestLocationAvailable() {
return currentLocation;
}
@Override
public void onLocationChanged(Location newBestLocation) {
mLocationManager.removeUpdates(this);
currentLocation = newBestLocation;
}
@Override
public void nProviderDisabled(String arg0) {
}
@Override
public void onProviderEnabled(String arg0) {
}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
}
}
MyLocationListener loc = new MyLocationListener(MainActivity.this);
位置location = loc.getBestLocationAvailable(); system.out.println(location.getLatitude()+“”+ location.getLongitude);
给我写回答,为什么我老了拉特朗?
答案 0 :(得分:0)
尝试在onLocationChnage()
中获取纬度和经度public void onLocationChanged(Location loc) {
//sets and displays the lat/long when a location is provided
String lat = loc.getLatitude();
String longt= loc.getLongitude();
Toast.makeText(getApplicationContext(),"Lat"+ lat+ "Long"+longt, Toast.LENGTH_LONG).show();
}
在清单中添加权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
答案 1 :(得分:0)
您的代码看起来是正确的,但为什么要添加此字符串?
mLocationManager.removeUpdates(this);
因此,您只会收到一个位置更新,之后您的听众将被禁用。尝试删除此字符串并再次检查。
另外,请注意不同的设备需要不同的时间进行GPS“冷启动”。在测试您的应用之前,请检查其他应用中的GPS状态(例如地图或GPS监视器)。如果您的设备处于“冷”状态,您将不会长时间(10-20分钟或更长时间)收到任何更新。