0

onCreate() にコードがあります

LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(  
LocationManager.GPS_PROVIDER, 500, 1, new LocationListener (){
             @Override
             public void onLocationChanged(Location loc) {
                               CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(loc.getLatitude(), loc.getLongitude()));
                               myMap.moveCamera(center);  
             }
});

これは、ユーザーの位置が変更されたときに発生しますが、一度発生させたいです。新しい場所が受信されるまで待ち、新しい場所のマップに移動し、ユーザーにマップを移動したくない

4

1 に答える 1

1

クラスメンバー

private LocationManager mLocationManager; 
MyLocationListener mLocationListener 

locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
MyLocationListener mLocationListener = new MyLocationListener();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 500, 1, myLocationListener);

public MyLocationListener extends LocationListener
{
        @Override
        public void onLocationChanged(Location loc) {
              CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(loc.getLatitude(), loc.getLongitude()));
              myMap.moveCamera(center); 
              mLocationManager.removeUpdates(mLocationListener): 
             }

        @Override
        public void onProviderDisabled(String provider) 
         {

         }

        @Override
        public void onProviderEnabled(String provider) 
        {

        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) 
        {

        }

}
于 2013-05-11T21:45:25.023 に答える