Типы permissions для получения локации
Для работы с местоположением, нужно явно запросить одно из разрешений:
• ACCESS COARSE LOCATION
когда приложение находится в статусе foreground (открыта активити или запущен сервис с уведмолением) и нужно получить примерную локацию (точность порядка +-3 км)
• ACCESS FINE LOCATION
статус foreground и нужно получить точную локацию (порядка +-10-50м)
• ACCESS BACKGROUND LOCATION
можно получать локацию, когда приложение не имеет статуса foreground
такое нужно приложениям для семейного контроля, отслеживанию друзей или IoT-пультам
особенности:
• можно запросить только COARSE, но нельзя запросить только FINE
если вам нужно разрешение ACCESS FINE LOCATION, запрашивайте сразу оба, а пользователь выберет - дать точную локацию, приближенную или отказать
• если пользователь уже выдал COARSE, можно запросить апгрейд до FINE
для этого снова выполните запрос на оба разрешения
• запрашивать ACCESS BACKGROUND LOCATION можно после получения одного из foreground-разрешений
при этом, если получено только COARSE, то только эта точность и будет доступна в background
....
описанные механики разнятся от версии к версии андроида
приведенная логика справедлива для Android 12, в более старых некоторые требования мягче
Post #57
1.92K