FusedLocationProvider — любой способ получить местоположение, если режим определения местоположения — «Только устройство»?

Я играл с FusedLocationProvider и обнаружил, что если для режима определения местоположения вашего телефона установлено значение «Только устройство» (изменено в настройках, это означает, что для определения местоположения включен только GPS. Сети Wi-Fi и вышки сотовой связи не используются для повышения точности ), то я не смог найти способ, с помощью которого FusedLocationProvider может указать вам местоположение, не попросив пользователя изменить его на High Accuracy (всегда вызывается onResolutionRequired).

Все четыре приоритета LocationRequest не сработали:

  1. PRIORITY_HIGH_ACCURACY — предлагается переключиться в режим определения местоположения «Высокая точность».
  2. PRIORITY_BALANCED_POWER_ACCURACY — то же, что и выше
  3. PRIORITY_LOW_POWER — то же, что и выше
  4. PRIORITY_NO_POWER - просто не сработало

Нет ли способа получить местоположение через FusedLocationProvider, если устройство находится в этом режиме? Я почти уверен, что вы можете получить его через android.location.LocationManager. Это кажется огромным недостатком дизайна, если это должно быть лучшей абстракцией поверх него.


person Gak2    schedule 22.02.2018    source источник
comment
у тебя есть решение? Вы можете объяснить это мне?   -  person Avinash Ajay Pandey    schedule 06.08.2018


Ответы (1)


Вам нужно использовать LocationManager, чтобы обнаружить это, и я согласен, что это действительно глупо. Используйте следующий код:

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (locationManager != null && locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
   requestLocationUpdates();
} else {
   //Location request code
}

Вот пример проекта, который я сделал, который включает эту технику:

https://github.com/gavingt/basic_location_improved

person Gavin Wright    schedule 26.02.2018
comment
это сработало? можете ли вы объяснить, как я могу написать код только для устройства? - person Avinash Ajay Pandey; 06.08.2018
comment
На это ушел весь день, но вот: github.com/gavingt/basic_location_improved - person Gavin Wright; 07.08.2018
comment
спасибо за ваши усилия, но все еще не работает, когда я перевожу его в режим только устройства (только GPS). - person Avinash Ajay Pandey; 07.08.2018
comment
Что значит не работает? Что просходит? Он отлично работает на моих устройствах и на эмуляторе. - person Gavin Wright; 07.08.2018
comment
нет, не работает в moto e power android os версии 6.0 - person Avinash Ajay Pandey; 08.08.2018