이 페이지에서는 다음 내용을 설명합니다.
- 백그라운드 위치 정보 액세스를 요청하는 방법
- 앱의 타겟 SDK 버전에 따라 요청을 처리하는 방법
- 대략적인 위치에 대한 사용자 환경설정이 앱에서 백그라운드 위치를 가져오는 방식에 미치는 영향
대상 SDK 버전에 따른 권한 대화상자 콘텐츠
앱의 기능이 Android 10(API 수준 29)을 실행하는 기기에서 백그라운드 위치를 요청하면 시스템 권한 대화상자에는 항상 허용이라는 옵션이 포함됩니다. 사용자가 이 옵션을 선택하면 앱의 기능에 백그라운드 위치 정보 액세스 권한이 부여됩니다.
하지만 Android 11(API 수준 30) 이상에서는 시스템 대화상자에 항상 허용 옵션이 포함되지 않습니다. 대신 사용자는 그림 7에 나와 있는 것처럼 설정 페이지에서 백그라운드 위치를 사용 설정해야 합니다.
백그라운드 위치 정보 액세스 권한을 요청할 때 권장사항에 따라 이 설정 페이지로 사용자가 이동하도록 할 수 있습니다. 권한 부여 프로세스는 앱의 타겟 SDK 버전에 따라 다릅니다.
Android 11 이상을 타겟팅하는 앱
앱에 ACCESS_BACKGROUND_LOCATION
권한이 부여되지 않고 shouldShowRequestPermissionRationale()
이 true
를 반환하면 다음이 포함된 교육용 UI를 사용자에게 표시합니다.
- 앱의 기능에 백그라운드 위치 정보 액세스 권한이 필요한 이유에 관한 명확한 설명
- 백그라운드 위치 액세스 권한을 부여하고 사용자에게 표시되는 설정 옵션 라벨 (예: 그림 7의 항상 허용).
getBackgroundPermissionOptionLabel()
를 호출하여 이 라벨을 가져올 수 있습니다. 이 메서드의 반환 값은 사용자 기기의 언어 환경설정으로 현지화됩니다. - 권한을 거부하는 사용자 옵션. 사용자가 백그라운드 위치 액세스를 거부하더라도 앱을 계속 사용할 수 있어야 합니다.
Android 10 이하를 타겟팅하는 앱
앱의 기능이 백그라운드 위치 액세스를 요청하면 사용자에게 시스템 대화상자가 표시됩니다. 이 대화상자에는 설정 페이지에서 앱의 위치 정보 액세스 권한 옵션으로 이동하는 옵션이 포함되어 있습니다.
앱이 이미 위치 정보 액세스 권한 요청의 권장사항을 준수한다면 이 동작을 지원하기 위해 어떠한 변경도 할 필요가 없습니다.
사용자가 백그라운드 위치 정확성에 영향을 줄 수 있음
사용자가 대략적인 위치를 요청하면 위치 정보 액세스 권한 대화상자 내 사용자의 선택이 백그라운드 위치에도 적용됩니다. 즉, 사용자가 앱에 ACCESS_BACKGROUND_LOCATION
권한을 부여하지만 포그라운드에서 대략적인 위치 정보 액세스 권한만 부여하면 앱은 백그라운드에서도 대략적인 위치 정보 액세스 권한만 보유합니다.
추가 리소스
Android의 위치 정보 액세스 권한에 관한 자세한 내용은 다음 자료를 참고하세요.
Codelab
동영상
샘플
- 샘플 앱: 위치 정보 액세스 권한 사용 방법을 보여줍니다.