Невозможно получить доступ к сетевому местоположению, когда доступ к местоположению отключен

Я использую api местоположения Google для получения местоположения. проблема, с которой я столкнулся, заключается в том, что когда пользователь выключил GPS, я не получаю Lcoation, согласно в этом сообщении говорится, что мы можем получить доступ к сетевому местоположению, даже если GPS отключен. но я не получаю информацию о местоположении, когда пользователь отключил доступ к местоположению.

это моя служба для определения местоположения

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 
   }     
}

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


person droidev    schedule 02.03.2016    source источник


Ответы (2)


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

person Hashes    schedule 02.03.2016
comment
Я не понимаю, не могли бы вы объяснить больше? - person droidev; 02.03.2016
comment
Следуйте ответу Patel Milan, это должно направить вас для дальнейшего объяснения, ваши атрибуты кода пытаются аутентифицировать запрос API на основе Google !! На основе! Вы должны определить, что запрашивать, а кто кого запрашивает, и это достижимо путем определения диспетчера местоположения и местоположения на основе разрешения. - person Hashes; 02.03.2016

person    schedule
comment
пожалуйста, внимательно прочитайте вопрос, прежде чем отвечать, см. Я использую api местоположения Google Play, и вы публикуете ответ для api собственного местоположения Android - person droidev; 02.03.2016