Для реализации этой функциональности в Android API v29 добавлен новый permission
ACCESS_BACKGROUND_LOCATION
, который влияет только на запросы локации в бэкграунде. Запрос локации считается сделанным не из бэкраунда, в двух случаях:1. Активити приложения видна пользователю, т.е. находится в состоянии started;
2. Запущен foreground service, у которого атрибут foregroundServiceType имеет значение
location
.ACCESS_BACKGROUND_LOCATION
– это runtime permission. При запросе этого разрешения пользователь видит диалог, изображенный на скриншоте.Если запрашивать только стандартные разрешения
ACCESS_FINE_LOCATION
или ACCESS_COARSE_LOCATION
, то диалог не будет иметь опцию «Allow all the time».