2016-03-11 2 views
1

Я пытаюсь использовать google maps api v2 для регистрации местоположения пользователя и сохранения его в SQLite db. Мне удалось это сделать. Но теперь проблема возникает, поскольку мои данные о местоположении регистрируются только один раз. Как только пользователь нажимает кнопку, предполагается, что местоположение будет регистрироваться непрерывно, пока пользователь не нажмет другую кнопку. Однако, в моем случае; приложение регистрирует местоположение в тот момент, когда пользователь нажимает кнопку, и все. Место регистрируется ТОЛЬКО ОДИН РАЗ. Я попытался манипулировать временем, используя ручку mLocationRequest, но изменяя время, в котором нет эффекта; мои данные регистрируются только один раз. Может кто-нибудь помочь мне, пожалуйста?Google Maps Android API регистрирует данные только один раз

private void handleNewLocation(Location location) { 

    String key = "xx"; 
    double currentLatitude = location.getLatitude(); 
    double currentLongitude = location.getLongitude(); 
    LatLng latLng = new LatLng(currentLatitude, currentLongitude); 

    Log.d("location", String.valueOf(latLng)); 
    databaseHandler.enterMapValues(_workOutId,String.valueOf(latLng)); 
     // Log.d("location new ", String.valueOf(latLng)); 

    old_longitude = currentLongitude; 
    old_latitude = currentLatitude; 
} 

Эта функция используется для получения нового местоположения. Я вызываю это в onConnected:

public void onConnected(Bundle bundle) { 

    Log.i(TAG, "location services connected"); 
    location_current = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); //to get last location 


    if (location_current == null) { //if last location is null, only then it will request new location 
     LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this); 
    } else { 
     handleNewLocation(location_current); 

    } 

} 
+2

Отправьте свой код. –

+0

Можете ли вы поделиться своей реализацией 'onLocationChanged'? – antonio

+0

public void onLocationChanged (Location location) { handleNewLocation (location); } –

ответ

0

Я удалил if-else in onConnected. Теперь он выбирает местоположение каждые 5 секунд, так как это время, указанное в mLocationRequest в onCreate(). Это решает мою проблему.

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