В документации говорится:
Если ваше приложение настроено на Android 10 (уровень API 29) или ниже, выполните следующие шаги, чтобы запросить ACCESS_BACKGROUND_LOCATION:
1) Включите Разрешение ACCESS_BACKGROUND_LOCATION, а также разрешение ACCESS_COARSE_LOCATION или ACCESS_FINE_LOCATION в манифесте вашего приложения.
2) Запросите разрешение ACCESS_BACKGROUND_LOCATION, а также одно из других разрешений расположения: ACCESS_ATIONOCLCATION. Или ACCESS_COAR_. Вы можете запросить эти разрешения в одной операции.
Инструкции немного двусмысленны, потому что они не описывают, какое поведение ожидать в каждой версии API. ACCESS_BACKGROUND_LOCATION был добавлен в API 29, поэтому он не существует в API 28 и более ранних версиях, поэтому в этих случаях это, по сути, запрет, поскольку в коде для этих версий Android. 1011 нет разрешения. *
В результате запрос разрешения для ACCESS_BACKGROUND_LOCATION
покажет пользователю дополнительные параметры для API 29 и выше, даже если вы ориентируетесь на более низкую версию API и при запуске кода на более старых версиях Android запрос на ACCESS_BACKGROUND_LOCATION
будет автоматически отклонен. Все хорошо, хотя, так как это разрешение не существует для тех более старых версий Android в любом случае.
В коде вашего приложения, если разрешение ACCESS_BACKGROUND_LOCATION
отказано в API 28 или ниже, просто игнорируйте отказ в разрешении, так как ожидается на этих Android версиях. В качестве альтернативы вы можете просто опустить запрос до ACCESS_BACKGROUND_LOCATION
для API 28 или ниже, чтобы достичь того же результата.