6월 3일의 ⁠#Android11: 베타 버전 출시 행사에 참여하세요.

Android 11의 위치 업데이트

Android 11에서는 앱이 백그라운드 위치 정보 액세스 권한을 요청할 수 있는 방법 및 사용자가 권한을 부여할 수 있는 방법이 변경되었습니다. 구체적인 변경사항은 앱의 타겟 SDK 버전에 따라 다르지만 Android 11에서 실행되는 모든 앱이 영향을 받습니다.

백그라운드 위치 정보 액세스

그림 1. 위치 정보 액세스 권한과 관련된 앱 내 대화상자에 이제 '항상 허용' 옵션이 없음

Android 11은 그림 1과 같이 일회성 권한을 추가하고 사용자가 앱 내 프롬프트에서 ACCESS_BACKGROUND_LOCATION 권한을 부여하는 기능을 삭제함으로써 위치 정보에 관한 사용자 제어력을 더욱 강화합니다.

Android 11에서 실행되는 모든 앱은 이 변경사항의 영향을 받습니다. 앱이 영향받는 방식은 다음과 같이 앱의 타겟 SDK 버전에 따라 다릅니다.

  • 앱이 Android 11을 타겟팅하면 앱에 ACCESS_BACKGROUND_LOCATION 권한이 필요한 이유를 사용자에게 설명하는 맞춤 UI를 생성할 수 있습니다.
  • 앱이 더 낮은 버전을 타겟팅하면 시스템에서 제공하는 UI를 사용해야 합니다. 이때 이 UI는 앱이 사용되지 않을 때도 백그라운드에서 위치 정보에 액세스하려고 함을 명시합니다.

맞춤 UI 생성

앱이 Android 11을 타겟팅하면 앱에 ACCESS_BACKGROUND_LOCATION 권한이 필요한 이유를 사용자에게 더 명확하게 설명할 수 있는 맞춤 UI를 표시할 수 있습니다.

이 섹션의 가이드라인에 따라 사용자가 이해하기 쉬운 UI를 만듭니다.

앱의 백그라운드 위치 요구사항 설명

앱에서 ACCESS_BACKGROUND_LOCATION을 요청하려면 먼저 앱이 포그라운드 위치 정보 액세스 권한(ACCESS_COARSE_LOCATION 또는 ACCESS_FINE_LOCATION)을 가져야 합니다. ACCESS_BACKGROUND_LOCATION 및 다른 권한을 동시에 요청하려고 하면 시스템에서 예외가 발생합니다.

앱에 이러한 권한 중 하나가 있다면 ACCESS_BACKGROUND_LOCATION 권한이 필요한 기능을 제공하는 UI를 사용자에게 표시합니다. 이 UI에는 앱 기능에 ACCESS_BACKGROUND_LOCATION 권한이 필요한 이유를 설명하고 사용자에게 다음 선택사항을 제시하는 텍스트가 포함되어야 합니다.

  • 권한을 부여합니다. 사용자가 이 옵션을 선택하면 ACCESS_BACKGROUND_LOCATION 권한을 요청한 것입니다. 시스템은 사용자를 시스템 설정으로 안내하여 이 권한 부여 프로세스를 완료합니다.

    사용자가 설정에서 ACCESS_BACKGROUND_LOCATION 권한을 부여할 수 있는 옵션을 찾을 수 있도록 지원하기 위해 앱 UI에 사용자에게 표시되는 설정 옵션 라벨을 포함할 수 있습니다. getBackgroundPermissionOptionLabel() 메서드는 사용자 기기의 언어 환경설정으로 현지화된 라벨을 제공합니다.

  • 권한을 부여하지 않습니다. 사용자가 권한을 부여하지 않더라도 앱을 계속 사용할 수 있어야 합니다. 사용자가 이 옵션을 선택하면 앱이 가능한 한 백그라운드 위치 정보 액세스가 필요한 기능에서 다른 위치로 사용자를 이동하여 정상적으로 계속할 수 있습니다.

앱에 ACCESS_BACKGROUND_LOCATION 권한이 부여된 이후에도 사용자는 시스템 설정에서 앱 사용 중에만 허용 또는 항상 확인으로 앱의 위치 정보 액세스를 변경할 수 있습니다. 사용자가 위치 정보 액세스를 완전히 거부할 수도 있습니다.

필요할 때 사용자를 시스템 설정으로 안내

옵션은 '이 앱의 위치 정보 액세스' 섹션에 있음
그림 2. 설정 화면에 백그라운드 위치 정보 액세스 권한을 부여하는 항상 허용 옵션이 있음

사용자가 앱에 ACCESS_BACKGROUND_LOCATION 권한을 부여하는 데 동의하면 앱은 그림 2에 나와 있는 설정 화면으로 사용자를 안내해야 합니다. 이 화면에는 항상 허용 옵션이 포함되어 있습니다. 이 옵션은 앱에 ACCESS_BACKGROUND_LOCATION 권한을 부여합니다.

시스템 설정으로 리디렉션 제한

앱에서 사용자를 시스템 설정의 권한 페이지로 이동하면 사용자는 항상 허용 이외의 위치 정보 액세스 수준(예: 거부)을 선택할 수 있습니다. Android 11을 사용하면 앱은 최대 2번까지 UI에서 시스템 설정으로 사용자를 보낼 수 있습니다. 따라서 앱의 기능에 백그라운드 위치 정보 액세스가 필요한 이유를 사용자에게 명확하게 설명하는 것이 중요합니다.

앱이 이 제한에 도달하면 시스템 설정 내 앱 정보 페이지로 사용자를 안내하는 인텐트를 계속 호출할 수 있습니다. 여기에서 사용자는 앱의 권한 페이지로 이동할 수 있습니다. 앱 정보 페이지를 로드하려면 Settings.ACTION_APPLICATION_DETAILS_SETTINGS 인텐트 작업을 사용합니다.

주의: ACTION_APPLICATION_DETAILS_SETTINGS의 사용은 앱에서 권한을 요청한다고 사용자에게 설명하지 않으므로 권장되지 않습니다.

시스템에서 제공하는 UI 사용

앱이 Android 10(API 수준 29) 이하를 타겟팅하면 ACCESS_BACKGROUND_LOCATION 권한을 요청할 때 그림 3과 같이 시스템에서 제공하는 대화상자를 표시해야 합니다.

두 버전의 대화상자 모두에서 다른 위치 정보 액세스 권한 옵션 이전에 '설정에서 액세스를 허용' 링크가 표시됩니다.
그림 3. 위치 정보 액세스 권한이 부여되기 이전(왼쪽) 및 사용자가 이미 포그라운드 위치 정보 액세스 권한을 부여한 이후(오른쪽) 모두에 시스템 설정 링크가 포함된 위치 정보 액세스 권한 프롬프트

이 대화상자에는 다음이 포함됩니다.

  • 시스템 설정의 앱 위치 정보 액세스 권한 페이지로 이동하여 항상 허용을 선택하는 방법 안내
  • 포그라운드 위치 정보 액세스를 허용하는 버튼 또는 백그라운드 위치 정보 액세스 업그레이드를 거부하는 버튼