Я разрабатываю приложение, в котором местоположение пользователя отслеживается только с помощью провайдера GPS (режим только для устройства местоположения). Поэтому, если пользователь устанавливает приоритет своего местоположения на приблизительное местоположение с использованием Wifi и Data, приложение не будет работать так, как было запланировано. Поэтому мне нужно программно выбрать пользовательский режим выбора местоположения (высокая точность, приблизительное местоположение или устройство) и отобразить соответствующие диалоговые окна. Какой был бы чистый способ достичь этого?Как узнать программно, какой режим местоположения включен?
ответ
Вы можете LocationProvider.getAccuracy: https://developer.android.com/reference/android/location/LocationProvider.html
Из документов: INT getAccuracy() Возвращает константу, описывающую горизонтальную точность этого провайдера. Если поставщик возвращает более тонкое зерно или точное местоположение, возвращается ACCURACY_FINE, в противном случае, если местоположение приблизительное, возвращается ACCURACY_COARSE.
Спасибо, посмотрим! –
1, чтобы проверить режим поставщика (GPS, сеть, подвал-идентификатор)
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
//get currently used providers
locationManager.getProviders(true);
2, показать диалоговое
new AlertDialog.Builder(this).
setTitle("Title").
setMessage("content").
show();
Обратите внимание, что ваше приложение будет работать как для GPS только режим и также режим High Accuracy, так как с обеих настроек GPS включен.
Чтобы проверить, включен ли GPS, это будет делать трюк.
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
boolean isGpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
if (!isGpsEnabled) {
//show your alert here
}
- 1. узнать, включен ли режим энергосбережения - Android SDK
- 2. Как узнать, что OSX был включен программно?
- 3. узнать, какой компьютер включен в сети
- 4. Как узнать, включен ли «InputMethod»?
- 5. Как узнать расширение Safari, если включен режим частного просмотра?
- 6. Как узнать в VI, на какой строке курсор включен?
- 7. Почему режим не включен?
- 8. Как узнать, включен ли MediaScanner?
- 9. Поиск местоположения функции программно
- 10. Программно узнать, включен ли «Жирный текст» в iOS7
- 11. Excel VBA: узнать, в какой строке включен фильтр.
- 12. Экран Android включен программно
- 13. Как узнать рельсы местоположения посетителей
- 14. Метод TestNG «включен» программно
- 15. Как узнать, включен ли JRadioButton в java
- 16. Как я могу программно узнать, на какой платформе работает код?
- 17. Как узнать программно, из какой категории был запущен тест?
- 18. Как узнать, какой класс LayoutParams использовать при создании представления программно?
- 19. Как узнать, какой файл включен ARC и какой файл отключен ARC?
- 20. Как узнать режим (разрешения) каталога?
- 21. Как узнать режим беспроводной аутентификации?
- 22. Какой unistd.h включен? (C++)
- 23. Как программно определить режим ввода для озвучивания?
- 24. Как изменить режим самолета программно?
- 25. Изменение текущего местоположения программно
- 26. Как узнать иерархию местоположения собственности в C#?
- 27. Как узнать, включен ли JSP-файл другим?
- 28. Как узнать, включен ли JSONP на сервере?
- 29. Как узнать, включен ли триггер в PostgreSQL?
- 30. Как узнать, включен ли экран ADB
Посмотрите на ответ здесь: http://stackoverflow.com/questions/30467850/monitoring-geofences-after-user-turns-location-service-off-and-on/30580898 –
@DanielNugent Я не хочу, чтобы такой тяжелый вес, как широковещательный приемник. Я чувствую, что ответ Карена - это путь. Дай мне проверить. –
Этот связанный ответ содержит код, который вам нужен, но и многое другое. Я просто разместил здесь ответ, который имеет только код, который вам нужен. –