Google сообщает по электронной почте об изменениях в разрешениях на местоположение Android:
Внесены изменения 15 октября 2016 года, которые повлияют на приложения таргетинг на API версии 21 (Android 5.0, Lollipop) или выше, которые используют ACCESS_FINE_LOCATION, но явно не имеют Используется функция "android.hardware.location.gps" . Двигаясь вперед, эти приложения будут доступны для установки на устройствах, у которых нет GPS аппаратное обеспечение. В большинстве случаев это не будет проблемой, поскольку Wi-Fi и Cell-ID основанное на местоположении обеспечивает достаточно высокую точность для типичной операции из этих приложений. Тем не менее, любые приложения, для которых требуется оборудование GPS, например GPS-навигаторы, должны явно добавить "android.hardware.location.gps" использует функцию для своего манифеста.
Если ваше приложение требует, чтобы 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
или нет?