我正在使用此帖子: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();
纬度&经度被声明为全局双重类型变量。但是,运行应用程序后,我得到蓝屏。我认为,问题是我的代码无法获得纬度和价值。经度。有人可以帮帮我吗?谢谢 。
答案 0 :(得分:4)
您的问题并没有感觉到我的代码究竟出了什么问题,但如果您真的需要做的话,我可以给您一个提示,以获取设备的当前位置。
提示:尝试使用位置监听器,如果您的设备位置发生变化,它会为您提供lat和long值。
<强>代码:强>
您的活动
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();
}
清单许可
<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"/>