在android中获取当前位置

时间:2012-09-12 06:47:27

标签: java android google-maps location

我正在使用此帖子: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();

纬度&经度被声明为全局双重类型变量。但是,运行应用程序后,我得到蓝屏。我认为,问题是我的代码无法获得纬度和价值。经度。有人可以帮帮我吗?谢谢 。

1 个答案:

答案 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"/>