Включение высокоточного определения местоположения с помощью API настроек в сервисе Google Play

Я пытаюсь включить местоположение из приложения, используя Settings API. В диалоговом окне местоположения отображается сообщение Use WiFi and cellular networks for location. При выборе Yes включается местоположение, но не GPS.

Вот что я получаю

Но пока я играл с Google Maps на том же устройстве, он отображает сообщение Use GPS, WiFi and cellular networks for location, как показано на скриншоте ниже.

И это также включает GPS. Как я могу добиться того же, что и Google Maps.

Прежде чем публиковать здесь, я надеюсь, что проверил все возможные варианты. Найдите мой список проб ниже.

Я установил priority как HIGH_ACCURACY и минимальный интервал в 5 секунд.

locationRequest = LocationRequest.create();

// Set the priority of the request
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

// Set the update interval to 10 seconds
locationRequest.setInterval(1000 * 10);

// Set the fastest update interval to 5 seconds
locationRequest.setFastestInterval(1000 * 5);

Используя только разрешение FINE_LOCATION

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

Также упомянуто несколько ссылок но точных решений ничего не дало. Все, что мне нужно, это включить местоположение с HIGH_ACCURACY по умолчанию, которое включает GPS Любая помощь по этому поводу?


person Kavin Prabhu    schedule 11.08.2016    source источник
comment
Странно, вроде как должно работать. Взгляните на ответ здесь: stackoverflow.com/a/31816683/4409409   -  person Daniel Nugent    schedule 11.08.2016


Ответы (1)


У меня была эта проблема, но после нажатия кнопки ДА, чтобы разрешить использование GPS, действие останавливается и запускается метод onPause, а затем начинается действие в методе onResume. Итак, мое решение было снова запустить локализацию в методе onResume.

@Override onResume public void () {

         //your code
         LocationRequest = LocationRequest.create ();

         // Set the priority of the request
         locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

         // Set the update interval to 10 seconds
         locationRequest.setInterval (1000 * 10);

         // Set the fastest update interval to 5 seconds
         locationRequest.setFastestInterval (1000 * 5);
         .....
         //start again the localizacion 
         LocationServices.FusedLocationApi.requestLocationUpdates(apiClient, locRequest, this);
person Jorge T    schedule 30.10.2016