본문으로 건너뛰기

권한 및 정책 확인

이 단계에서는 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"/>