В Android 10 добавлена возможность запретить получение данных локации, когда приложение работает в бэкграунде.
Для реализации этой функциональности в 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».