Важно понимать разницу между minSdk
и targetSdk
, и это немного сложно.
В версии 1 вы устанавливаете minSdk
равным 26. Если вы явно не установили targetSdk
, это означает, что система также по умолчанию приняла targetSdk
, равную 26, чтобы соответствоватьminSdk
.Пока все хорошо.
Теперь minSdk
представляет минимальную версию устройства Android, на которой вы можете работать.targetSdk
представляет версию Android SDK, о которой вы знаете и использовали при разработке приложения.Важное изменение произошло в SDK 23. Android начал поддерживать необязательные разрешения - т. Е. Пользователю приложения не нужно было принимать все разрешения во время установки, вместо этого они могли принимать их при использовании приложения.
Так что всепользователи, которые установили версию 1, не приняли никаких разрешений.Если в версии 2 вы переключились на targetSdk=17
и пользователи обновили приложение, система предположила бы, что они приняли разрешения во время установки (потому что она вернулась к старой модели разрешений), и у пользователя никогда не будет запрашиваться разрешение, что было бы большой дырой в безопасности.
Так что, как только приложение в новой модели разрешений (targetSdk>=23
), оно никогда не сможет вернуться назад.
Чтобы ваше приложение работало, вы должнывыполните следующие действия:
- установите для
minSdk
значение 17 (или любое другое значение) - установите для
targetSdk
значение 23 или более (вероятно, 26). инструкции по выполнению этого в phonegap приведены здесь - , чтобы убедиться, что весь ваш код, использующий разрешения, имеет правильные необязательные запросы разрешений при работе на устройствах с SDK 23 или выше.