Для реализации этой функциональности в 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».