2017-04-17 2 views
2

Je code suivant:Comment empêcher la mise à jour du point bleu dans Google Map V2 Android?

private long fasterIntervalTime = 1 * 5 * 1000; 
private long intervalTime = 1 * 20 * 1000; 
private LocationRequest mLocationRequest; 

public boolean getLocation() {  
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
    mLocationRequest.setNumUpdates(1); 
    mLocationRequest.setInterval(intervalTime); 
    mLocationRequest.setFastestInterval(fasterIntervalTime); 
    LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this); 
} 

@Override 
public void onLocationChanged(Location location) { 
    Log.d(TAG, "Getting location : " + (location == null)); 
    if (mGoogleApiClient.isConnected()) { 
     LocationServices.FusedLocationApi.removeLocationUpdates(
       mGoogleApiClient, this); 
    } 
} 

Comment éviter le point bleu ne met trop vite dans Google Map?

Il n'appelle pas onLocationChanged lorsque la position du point bleu est modifiée.

+0

Avez-vous mis en œuvre LocationListener dans votre classe? – Bhavnik

+0

Oui, parce que je peux obtenir le lat long et pas possible de copier le code car il implique de nombreuses classes. – Rendy

+0

OK, c'est très bien, alors essayez de supprimer la méthode setNumUpdates de votre code, car cela vous donnera une mise à jour de l'emplacement seulement une fois. Lisez ce document officiel Android: - https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html#setNumUpdates(int) – Bhavnik

Répondre

0
//stop location updates 
if (mGoogleApiClient != null) { 
    LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this); 
} 

setNumUpdates RETIREZ parce qu'il appellera une seule fois