我正在使用这篇文章:What is the simplest and most robust way to get the user's current location on Android?获取设备的当前位置。我的代码是:
locationResult = new LocationResult() {
@Override
public void gotLocation(Location location) {
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
};
myLocation = new MyLocation();
myLocation.getLocation(this, locationResult);
mapController = mapView.getController();
point = new GeoPoint((int) (latitude * 1E6), (int) (longitude * 1E6));
mapController.animateTo(point);
Toast.makeText(getApplicationContext(), ("Latitude = "+latitude+" Longitude = "+longitude), Toast.LENGTH_SHORT).show();
mapController.setZoom(17);
mapView.invalidate();
纬度和经度声明为全局 double 类型变量。但是,在运行该应用程序后,我出现了蓝屏。我认为,问题是我的代码无法获取纬度和经度的值。有人可以帮我吗?谢谢 。
最佳答案
你的问题并没有让我感觉到你的代码到底出了什么问题,但如果你真的需要做的是获取设备的当前位置,我可以给你一个提示。
提示:尝试使用位置监听器,如果您的设备位置发生变化,它会为您提供纬度和经度值。
代码:
你的 Activity
LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
你的听众类
@Override
public void onLocationChanged(Location loc){
//you are getting values
loc.getLatitude();
loc.getLongitude();
}
list 许可
<uses-permission android:name="android.permission.ACCESS_GPS"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
关于java - 在android中获取 map 上的当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12382573/