2015-11-25 3 views
0

Я использовал API Fused Location для получения обновлений местоположения. Я получаю обновления при установке LocationRequest на основе setTimeInterval. Но мне нужно только обновления на 10m Movement. Поэтому я поставил setSmallestDisplacement (10). Но когда я положил setSmallestDisplacement (10), я не получал обновления. Ниже мой LocationUpdate классПродвинутый поставщик местоположения не дает обновлений местоположения при перемещении

public class LocationManger implements 
    GoogleApiClient.ConnectionCallbacks, 
    GoogleApiClient.OnConnectionFailedListener, com.google.android.gms.location.LocationListener { 

GoogleApiClient mLocationClient; 
Location mCurrentLocation; 
LocationRequest mLocationRequest; 
Context mContext; 


public LocationManger(Context context) { 
    super(); 
    mLocationClient = new GoogleApiClient.Builder(context) 
      .addApi(LocationServices.API) 
      .addConnectionCallbacks(this) 
      .addOnConnectionFailedListener(this) 
      .build(); 
    mContext = context; 
} 


@Override 
public void onLocationChanged(Location location) { 
    mCurrentLocation = location; 

} 


@Override 
public void onConnectionFailed(ConnectionResult connectionResult) { 
    Helper.showToast("failed", mContext); 

} 

@Override 
public void onConnected(Bundle arg0) { 

if (mLocationRequest == null) { 
     mLocationRequest = LocationRequest.create(); 
     mLocationRequest.setSmallestDisplacement(10); 
     mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 

    } 

    LocationServices.FusedLocationApi.requestLocationUpdates(mLocationClient, mLocationRequest, this); 

} 

@Override 
public void onConnectionSuspended(int i) { 
    mLocationClient.connect(); 

} 

/** 
* Function to start the location updates 
*/ 
public void startLocationUpdates() { 
    if (!mLocationClient.isConnected()) 
     mLocationClient.connect(); 
} 

/** 
* function to stop the location updates 
*/ 
public void stopUpdatingLocation() { 
    if (mLocationClient.isConnected()) { 

    LocationServices.FusedLocationApi.removeLocationUpdates(mLocationClient, this); 
    } 
    mLocationClient.disconnect(); 

} 

/** 
* function to get the current latitude 
*/ 
public double getCurrentLatitude() { 
    if (mCurrentLocation != null) { 
     return mCurrentLocation.getLatitude(); 
    } 
    return 0; 

} 

/** 
* function to get the current longitude 
*/ 
public double getCurrentLongitude() { 
    if (mCurrentLocation != null) { 
     return mCurrentLocation.getLongitude(); 
    } 
    return 0; 
} 

/** 
* function to get the current location 
*/ 
public Location getCurrentLocation() { 
    return LocationServices.FusedLocationApi.getLastLocation(mLocationClient); 
} 

}

Пожалуйста, дайте мне решение, если кто-нибудь знает эту проблему. Заранее спасибо

+0

Работает ли он на временной интервал – dileep

+0

Да, его рабочий штраф за промежуток времени – user3506595

+0

попытайтесь дать временной интервал как 0 и загрузить его – dileep

ответ

0

Используйте setFastestInterval (0), чтобы разрешать обновления чаще, чем вызываемые setInterval. В противном случае вы пропустите некоторые обновления из смещения

+0

Работает ли он без временного интервала. Мне не нужны обновления, основанные на временном интервале – user3506595

Смежные вопросы