본문으로 건너뛰기

권한 및 정책 확인

이 단계에서는 SDK에서 사용하고 권장하는 권한에 관해 설명하고 권한 사용 시 필요한 심사 방법에 대해 언급합니다.

노트

SDK를 탑재하기 전에, 앱의 약관 동의·위치·백그라운드 등 정책을 먼저 확정하고, 그에 맞는 권한만 선별해 반영해 주세요.

정책과 권한을 맞춰 두면 통합 과정에서 불필요한 수정 및 재작업을 줄일 수 있습니다.

목표

  • 1. 권한/심사 분기 문서 확인
  • 2. 자동 추가 권한 확인
  • 3. 앱에서 수동으로 요청할 권한 확인

정책/심사 분기 문서

SDK 도입 과정에서 아래 케이스에 해당하면 링크의 문서를 확인해 주세요.

위치 권한 - 앱 사용 중 허용만 사용 (항상 허용 X)

Foreground Service 권한 심사 가이드를 확인해 주세요.

앱이 백그라운드에 있을 때 위치 정보를 획득하기 위해서는 Foreground Service(FGS) 알림을 띄워야 합니다.

FGS 알림을 띄우기 위해서는 FOREGROUND_SERVICE_LOCATION 권한이 필요하고, 이 권한에 맞는 심사 대응이 필요합니다.

안드로이드 포그라운드 서비스 위치 권한 심사 가이드를 참고해 주세요.

앱 사용 중 허용 권한의 한계
  1. 백그라운드에서 SDK 동작을 유지할 수 있는 시간은 최대 2일 정도로 짧은 편입니다.

  2. 사용자가 스와이프해서 제거할 수 있지만 앱 최초 실행(프로세스 종료 후 시작)시에 FGS 알림이 뜹니다.


위치 권한 - 항상 허용을 사용하는 경우

항상 허용을 사용하는 경우 앱 사용 중 허용에 필요한 심사에 항상 허용 권한 심사가 추가됩니다.

Foreground Service 권한 심사 가이드를 확인해 주세요.

앱이 백그라운드에 있을 때 위치 정보를 획득하기 위해서는 Foreground Service(FGS) 알림을 띄워야 합니다.

FGS 알림을 띄우기 위해서는 FOREGROUND_SERVICE_LOCATION 권한이 필요하고, 이 권한에 맞는 심사 대응이 필요합니다.

자세한 내용은 안드로이드 포그라운드 서비스 위치 권한 심사 가이드를 참고해 주세요.

항상 허용을 사용하는 경우, 간혹 깜빡이는 Foreground Service 알림을 볼 수는 있지만 사용자는 알림의 존재를 거의 확인하지 못합니다.

위치 권한 "항상 허용(ACCESS_BACKGROUND_LOCATION)" 심사 가이드를 확인해 주세요.

안드로이드는 위치 권한 항상 허용 사용 시 사용 목적백그라운드 동작 여부를 여러 채널을 통해서 명확하게 사용자에게 알리도록 가이드하고 있습니다.

  1. 앱 내에서 공지
  2. 구글 플레이 스토어에서 공지
  3. 앱 제출 시 구글 플레이에 제공

자세한 내용은 백그라운드 위치 권한 심사 가이드를 참고해 주세요.


SDK 적용 시 자동 추가 권한

권한설명
ACCESS_FINE_LOCATIONGPS를 이용하여 현재 위치의 위도와 경도 값을 획득할 수 있는 권한
ACCESS_COARSE_LOCATIONWiFi 혹은 Network를 이용하여 현재 위치의 위도와 경도 값을 획득할 수 있는 권한
ACCESS_NETWORK_STATE네트워크 상태를 확인할 수 있는 권한
ACCESS_WIFI_STATE / CHANGE_WIFI_STATE주변 WiFi AP들을 스캔하기 위한 권한
INTERNET인터넷을 사용할 수 있는 권한
RECEIVE_BOOT_COMPLETED기기 부팅 완료 시 브로드캐스트를 받기 위한 권한
FOREGROUND_SERVICE지속적인 위치 수집을 위한 권한
FOREGROUND_SERVICE_LOCATIONAndroid 14 이후 Foreground Service 사용 시 필요한 FGS 타입 권한
AD_ID로플랫에서 유저를 특정하기 위한 권한

적용 방법

아래 권한들이 AndroidManifest.xml에 자동 병합됩니다.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />

앱에서 검토 후 선택적으로 추가하는 권한

POST_NOTIFICATIONS : 알림을 띄우기 위한 권한

(targetSdkVersion 33 이상일 경우) 안드로이드 정책에 따라 사용자에게 해당 권한에 관해 설명하고 동의를 받아야 합니다.

loplat X에서 캠페인 알림을 띄울 때도 사용됩니다.


ACCESS_BACKGROUND_LOCATION : 백그라운드 위치 액세스(위치-항상 허용)를 하기 위해 추가하기 위한 권한

(targetSdkVersion 29 이상일 경우) 구글의 백그라운드 위치 정책에 따라 항상 허용이 필요한 UX를 설명하고 사용자의 동의를 받아야 합니다.


ACTIVITY_RECOGNITION : 사용자 행동 기반으로 민첩하고 효율적으로 위치를 획득하기 위한 권한

(targetSdkVersion 29 이상부터) 사용자에게 신체 활동 권한 동의를 받아야 하므로 적절한 UX가 필요합니다.

적용 방법

정책에 따라 적절한 권한을 AndroidManifest.xml에 추가해 주세요.

POST_NOTIFICATIONS

<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

ACCESS_BACKGROUND_LOCATION

<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>

ACTIVITY_RECOGNITION

앱의 targetSdkVersion이 29 이상이면 아래와 같이 추가

<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>

Android 10 미만 OS 버전들을 지원한다면 아래 권한도 같이 추가

<uses-permission
android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION"
android:maxSdkVersion="28"/>