Android 10의 Tristate 위치 정보 액세스 권한을 통해 사용자는 앱이 기기 위치에 액세스하는 방식을 더욱 세밀하게 제어할 수 있습니다.
Android 9 이하에서는 사용자가 앱에 위치 액세스를 부여할 때마다 계속 선택을 해야 했습니다. 사용자는 거부 또는 허용만 선택이 가능했으며, 후자를 선택할 경우 앱에 항상 액세스가 부여되었습니다(포그라운드 및 백그라운드). Android 10의 Tristate 위치 정보 액세스 권한은 앱이 기기 위치에 액세스할 수 있도록 하기 위한 세 가지 옵션을 사용자에게 제공합니다. 사용자에게는 앱의 요청이 있을 때 권한 수준을 부여하거나 거부하라는 메시지가 표시됩니다.
사용자에게는 보통 그림 1에 나온 세 가지 옵션이 표시됩니다. 하지만 이러한 옵션 중 2개만 요구되는 상황이 있으며, 이럴 때에는 2개의 옵션만 표시됩니다.
세 가지 옵션은 다음과 같습니다.
- 항상 허용: 앱이 사용되지 않는 경우(백그라운드에서 실행 중인 경우)에도 앱이 기기 위치를 인지합니다. 이는 Android 9 이하에서 권한을 허용하는 것과 같습니다.
- 앱 사용 중에만 허용: (포그라운드 전용) 앱이 실행 중일 때에만 앱에서 기기 위치에 액세스할 수 있습니다.
- 거부: 앱에서 기기 위치에 액세스할 수 없습니다. 이는 Android 9 이하에서 권한을 거부하는 것과 같습니다.
사용자에게는 앱이 권한을 요청할 때 위치 액세스 권한을 부여하라는 메시지가 표시됩니다.
사용자가 앱 사용 중에만 허용 액세스 권한을 부여하면 앱은 점차적인 액세스 확대를 요청하여 항상 사용으로 전환할 수 있습니다. 사용자에게는 요청 대화상자(그림 2)가 표시됩니다. 사용자가 사용 중 액세스 유지를 선택하면 앱이 다음 사용 시 기기 위치에 액세스할 때 대화상자에서 유지 및 다시 묻지 않음 옵션을 제공합니다.
Android 10을 타겟팅하는 앱의 경우 다음 조건을 충족할 때 대화상자가 표시됩니다.
- 권한 부여 후 최소 24시간 이후
- 앱이 백그라운드에서 위치를 수신하는 경우에만
- 화면이 켜져 있고 사용자가 다른 앱을 활용하지 않을 때
권한 요청에 관한 자세한 내용은 기기 위치에 대한 앱 액세스를 참고하세요. 앱이 Android 9 이하를 타겟팅한다면 사용자가 시작하는 작업의 연속성에서 자세한 내용을 확인하세요.
영향
tristate 위치 정보 액세스 권한 기능은 백그라운드에서 실행되는 동안 기기 위치에 액세스해야 하는 모든 앱에 영향을 미치며, Android 10에서는 필수입니다.
코드를 변경할 수는 있지만 프레임워크에서 권한 관련 동작을 변경하거나 맞춤설정할 수는 없습니다.
구현
Tristate 위치 정보 액세스 권한은 앱의 타겟 SDK와 상관없이 Android 10의 앱에 적용됩니다.
앱의 업그레이드 사용 사례를 구현하는 방법은 개발자 문서의 기기 업그레이드 시나리오를 위한 디자인 섹션을 참고하세요
여러 사용 사례(예: Google 지도, Google Play 서비스 등 앱과 관련된 백그라운드 위치 정보 액세스가 필요할 때)에서 액세스를 사용 설정하는 방법을 알아보려면 기기 위치에 대한 앱 액세스 페이지에서 관련 주제를 확인하세요.
인앱 위치 액세스
사용자는 원하는 경우 앱의 액세스 권한을 거부 또는 앱 사용 중에만 허용으로 변경할 수 있습니다. 인앱 위치 액세스 권한과 모든 퍼스트 파티 및 서드 파티 앱의 경우 아래 표에 주어진 사용자 제어 수준을 제공하세요.
앱에서 요청해야 하는 권한 유형 | 제공해야 하는 사용자 옵션 |
---|---|
앱에서 포그라운드 권한만 요청 | 앱 사용 중에만 허용 거부 |
앱에서 항상 권한 요청(포그라운드 및 백그라운드) | 항상 허용 앱 사용 중에만 허용 거부 |
위치 액세스 요청이 있는 모든 앱 | 앱 사용 중에만 허용 |
이러한 권한은 모든 위치 요청에 적용됩니다. 앱 사용 중에만 허용 권한을 보유한 앱은 백그라운드 Wi-Fi 또는 셀 검색이 허용되지 않습니다.
Android 11 이하에서 앱 사용 중에만 허용 권한을 보유한 앱은 백그라운드 블루투스 검색이 허용되지 않습니다. Android 12부터 앱 사용 중에만 허용 권한을 보유한 앱은 android:usesPermissionFlags
속성의 값을 neverForLocation
으로 설정하여 블루투스 검색 결과를 얻을 수 있습니다. 자세한 내용은 앱이 실제 위치를 파생하지 않음을 참고하세요.
OS 업그레이드
Android 10으로 OS가 업그레이드되면 앱 위치 정보 액세스 권한이 다음에 따라 해석됩니다.
- On이 사용 중에만 허용이 됩니다.
- Off는 꺼짐을 의미합니다(거부).
- 미리 부여된 위치 액세스는 사용 중에만 허용이 됩니다(미리 부여).