Привет, два схожих метода :
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
// Called when a new location is found by the network location provider.
//makeUseOfNewLocation(location);
Toast.makeText(getApplicationContext(), "test:"+Double.toString(location.getLatitude()), Toast.LENGTH_SHORT).show();
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
if ( Build.VERSION.SDK_INT >= 23 &&
ContextCompat.checkSelfPermission( getBaseContext(), android.Manifest.permission.ACCESS_FINE_LOCATION ) != PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission( getBaseContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
}
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
locationManager.removeUpdates(locationListener);
private GoogleMap.OnMyLocationChangeListener myLocationChangeListener = new GoogleMap.OnMyLocationChangeListener() {
@Override
public void onMyLocationChange(Location location) {
LatLng loc = new LatLng(location.getLatitude(), location.getLongitude());
//mMarker = mMap.addMarker(new MarkerOptions().position(loc));
Toast.makeText(getApplicationContext(), location.getLatitude()+" "+location.getLongitude(), Toast.LENGTH_SHORT).show();
if(mMap != null){
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(loc, 16.0f));
}
}
};
mMap.setOnMyLocationChangeListener(myLocationChangeListener);
Координаты определяются, onMyLocationChange работает как надо.
Но оба метода постоянно срабатывают, т.е. с заданным периодом, не понимаю от куда этот период взялся и как с этом работать?
К примеру - вызвать определение координат и обработать результат?
Спасибо!