2016-03-02 4 views
0

Я использую google location api для получения местоположения. проблема, с которой я столкнулся, - это когда пользователь отключил GPS, я не получаю Lcoation, поскольку сообщение this говорит, что мы можем получить доступ к сетевому местоположению даже, хотя GPS отключен. но я не получаю locaton, когда пользователь отключил доступ к местоположению.Не удается получить доступ к местоположению, основанному на сети, когда доступ к местоположению отключен

это моя служба, чтобы принести место в

public class LocationUpdateService extends Service implements GoogleApiClient.ConnectionCallbacks, 
     GoogleApiClient.OnConnectionFailedListener, LocationListener, ResultCallback<Status> { 


@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    startLocationUpdates(); 
    return START_STICKY; 
} 


@Override 
public void onCreate() { 
    super.onCreate(); 
    LogUtils.LOGI(TAG, "Service created"); 
    buildGoogleApiClient(); 
    setupBroadCastListenerForGpsStatusChange(); 
    initLastLocationDetails(); 
} 


/** 
* Requests location updates from the FusedLocationApi. 
*/ 
protected void startLocationUpdates() { 
    if (!mGoogleApiClient.isConnected()) { 
     mGoogleApiClient.connect(); 
    } else { 
     mRequestingLocationUpdates = true; 
     LocationServices.FusedLocationApi.requestLocationUpdates(
       mGoogleApiClient, mLocationRequest, this); 
    } 
} 

/** 
* Builds a GoogleApiClient. Uses the {@code #addApi} method to request the 
* LocationServices API. 
*/ 
protected synchronized void buildGoogleApiClient() { 
    LogUtils.LOGI(TAG, "Building GoogleApiClient"); 
    mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .addConnectionCallbacks(this) 
      .addOnConnectionFailedListener(this) 
      .addApi(LocationServices.API) 
      .addApi(ActivityRecognition.API) 
      .build(); 
    createLocationRequest(); 
} 

protected void createLocationRequest() { 
    mLocationRequest = new LocationRequest(); 
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
    mLocationRequest.setInterval(UPDATE_INTERVAL_IN_MILLISECONDS); 
    mLocationRequest.setFastestInterval(FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS); 
    mLocationRequest.setSmallestDisplacement(SMALLEST_DISTANCE_METERS); 
} 

    @Override 
    public void onConnected(Bundle connectionHint) { 
     startLocationUpdates(); 
    } 

    @Override 
    public void onLocationChanged(Location location) { 
     //location operations 
    }  
} 

Так что мой вопрос в том, что на самом деле можно получить доступ места, когда доступ к местоположению отключено (не последний кэшируется расположение), если да, то случилось с моим кодом

ответ

1
if (isNetworkEnabled) { 
    manager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MIN_TIME_BTWN_UPDATES, 
          DISTANCE_OF_UPDAPTES, this); 
    if (manager != null) { 
    location = manager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
     if (location != null) { 
      latitude = location.getLatitude(); 
      longitude = location.getLongitude(); 
     } 
    } 
} 
+1

Пожалуйста, внимательно прочитайте вопрос перед ответом, см. Я использую google play location api, и вы отправляете ответ для родного местоположения android api – droidev

0

вы Канот запустить службу изначально используя только Google Api Location, вы должны управлять, чтобы управлять расположением на основе запроса пользователя, используя булеву менеджер местоположения. В противном случае ваши попытки доза не выглядят поверхностными, вы можете использовать либо получить когда GPS является на или от зависимости при обнаружении.

+0

i dint unserstand, можете ли вы объяснить больше? – droidev

+0

Следуйте за ответным письмом milan, это должно послужить вам руководством для дальнейшего объяснения, ваши атрибуты кода пытаются аутентифицировать запрос API на основе Google! Основано на! Вы должны определить, что запрашивать и кому запрос кому и чего достичь, путем определения менеджера местоположений и местоположения на основе разрешения. – Hashes

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