Google сообщает по электронной почте об изменениях в разрешениях на местоположение Android:
15 октября 2016 г. мы вносим изменения, которые коснутся приложений с таргетингом на API версии 21 (Android 5.0, Lollipop) или более поздней версии, которые используют ACCESS_FINE_LOCATION, но не имеют явной функции uses-feature android.hardware.location.gps. В будущем эти приложения будут доступны для установки на устройства, не оснащенные оборудованием GPS. В большинстве случаев это не будет проблемой, поскольку определение местоположения на основе Wi-Fi и Cell-ID обеспечивает достаточно высокую точность для типичной работы этих приложений. Однако любые приложения, которым требуется оборудование GPS, например GPS-навигаторы, должны явно добавлять в свой манифест функцию android.hardware.location.gps uses-feature.
Если вашему приложению для правильной работы требуется GPS, а вы не включили его в декларацию манифеста, у ваших пользователей могут возникнуть проблемы с приложением.
Кроме того, если вы используете объединенный поставщик местоположения и хотите получать наиболее точные образцы местоположения от GPS (например, с PRIORITY_HIGH_ACCURACY), вы должны включить функцию android.hardware.location.gps в манифест вашего приложения, чтобы гарантировать, что только Google Play распространяет ваше приложение на устройства с датчиками GPS.
Подробнее об этом изменении можно узнать в Справочном центре для разработчиков Android. .
Из Справочного центра для разработчиков Android.
Чтобы получать обновления местоположения от NETWORK_PROVIDER или GPS_PROVIDER, вы должны запросить разрешение пользователя, объявив разрешение ACCESS_COARSE_LOCATION или ACCESS_FINE_LOCATION соответственно в файле манифеста Android. Без этих разрешений ваше приложение завершится ошибкой во время выполнения при запросе обновлений местоположения.
Если вы используете как NETWORK_PROVIDER, так и GPS_PROVIDER, вам нужно запросить только разрешение ACCESS_FINE_LOCATION, поскольку оно включает разрешение для обоих поставщиков. Разрешение для ACCESS_COARSE_LOCATION разрешает доступ только к NETWORK_PROVIDER.
Внимание! Если ваше приложение нацелено на Android 5.0 (уровень API 21) или выше, вы должны объявить, что ваше приложение использует аппаратную функцию android.hardware.location.network или android.hardware.location.gps в файле манифеста, в зависимости от того, используете ли вы приложение получает обновления местоположения от NETWORK_PROVIDER или от GPS_PROVIDER. Если ваше приложение получает информацию о местоположении из любого из этих источников поставщика местоположения, вам необходимо объявить, что приложение использует эти аппаратные функции в манифесте вашего приложения. На устройствах под управлением версий до Android 5.0 (API 21) запрос разрешения ACCESS_FINE_LOCATION или ACCESS_COARSE_LOCATION включает подразумеваемый запрос на аппаратные функции определения местоположения. Однако при запросе этих разрешений автоматически не запрашиваются аппаратные функции определения местоположения в Android 5.0 (уровень API 21) и выше.
Я использую объединенный поставщик местоположения, ориентируясь на API 21 и использую ACCESS_FINE_LOCATION
. Меня особо не волнует, доступен ли GPS, только то, что сообщается самое точное местоположение.
- Исходя из первой цитаты, я думаю, что мне не нужно вносить никаких изменений.
- Судя по второй цитате, я думаю, что мне нужны и
android.hardware.location.gps
, иandroid.hardware.location.network
. Или это только дляLocationManager
, а не слитного локации?
Мне нужны android.hardware.location.gps
и android.hardware.location.network
или нет?