Я играл с FusedLocationProvider и обнаружил, что если для режима определения местоположения вашего телефона установлено значение «Только устройство» (изменено в настройках, это означает, что для определения местоположения включен только GPS. Сети Wi-Fi и вышки сотовой связи не используются для повышения точности ), то я не смог найти способ, с помощью которого FusedLocationProvider может указать вам местоположение, не попросив пользователя изменить его на High Accuracy (всегда вызывается onResolutionRequired).
Все четыре приоритета LocationRequest не сработали:
- PRIORITY_HIGH_ACCURACY — предлагается переключиться в режим определения местоположения «Высокая точность».
- PRIORITY_BALANCED_POWER_ACCURACY — то же, что и выше
- PRIORITY_LOW_POWER — то же, что и выше
- PRIORITY_NO_POWER - просто не сработало
Нет ли способа получить местоположение через FusedLocationProvider, если устройство находится в этом режиме? Я почти уверен, что вы можете получить его через android.location.LocationManager. Это кажется огромным недостатком дизайна, если это должно быть лучшей абстракцией поверх него.