안드로이드 SDK 가이드
해당 문서는 최신버전 의 SDK를 기준으로 작성되었습니다.
SDK 정보
SDK 지원 버전
minSdkVersion
19
SDK 적용
loplat SDK를 사용하기 위해서는 로플랫에서 제공하는 ID와 Secret 키를 발급받아야 합니다.
발급을 원하시는 기업, 개발자는 아래의 내용을 기입하여 business@loplat.com 으로 보내주시기 바랍니다.
- 이름
- 회사
- 사용 목적
권한
-
자동 추가 권한 - SDK를 적용하면 아래 권한이 자동으로 추가됩니다.
ACCESS_FINE_LOCATION
: GPS를 이용하여 현재 위치의 위도와 경도 값을 획득할 수 있는 권한ACCESS_COARSE_LOCATION
: WiFi 혹은 Network를 이용하여 현재 위치의 위도와 경도 값을 획득할 수 있는 권한ACCESS_NETWORK_STATE
: 네트워크 상태를 확인할 수 있는 권한ACCESS_WIFI_STATE / CHANGE_WIFI_STATE
: 주변 WiFi AP들을 스캔하기 위한 권한INTERNET
: 인터넷을 사용할 수 있는 권한RECEIVE_BOOT_COMPLETED
: 핸드폰 부팅되는 과정을 브로드캐스팅하기 위한 권한FOREGROUND_SERVICE
: 지속적인 위치 수집을 위한 권한AD_ID
: 로플랫에서 유저를 특정하기 위한 권한
<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="com.google.android.gms.permission.AD_ID" /> -
수동 추가 권한 - 개발자가 직접 앱 AndroidManifest.xml에 권한 추가
-
POST_NOTIFICATIONS
: targetSdkVersion 33 이상일 경우 알림 허용 권한을 추가해야 합니다. 안드로이드 정책에 따라 사용자에게 해당 권한에 대해 설명하고 동의를 받아야 합니다. -
ACCESS_BACKGROUND_LOCATION
: targetSdkVersion 29 이상일 경우 백그라운드 위치 액세스(위치-항상허용)를 하기 위해 추가해야 합니다. 구글의 백그라운드 위치 정책에 따라 항상허용이 필요한 UX를 설명하고 사용자의 동의를 받아야 합니다. -
ACTIVITY_RECOGNITION
: 사용자 행동 기반으로 민첩하고 효율적으로 위치 획득이 가능하므로 추가하기를 권장합니다. targeSdkVersion 29 이상부터 사용자에게 활동감지 권한 동의를 받아야 하므로 적절한 UX가 필요합니다.
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
앱의 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"/> -
아래의 권한이 있어야만, 와이파이 스캔을 할 수 있습니다.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
- 권한 설정과 관련하여 좀 더 자세한 사항은 Android Developers 를 참고 바랍니다.
프로젝트에 loplat SDK 추가
loplat SDK 종속성 추가 하기
-
프로젝트 내, 최상위
build.gradle
에 아래의 코드를 추가하세요.allprojects {
repositories {
jcenter()
mavenCentral()
maven { url "https://maven.loplat.com/artifactory/plengi"}
google()
}
} -
이후 앱의 build.gradle 에 아래의 코드를 추가하세요.
implementation 'com.loplat:placeengine:[최신버전]'
-
sdk 인증을 위해 loplat client_id와 client_secret을 추가해주세요.
-
client_id, client_secret 관련 정보는 메일로 전달 합니다.
defaultConfig {
...
resValue "string", "[client_id 키명]", "[client_id]"
resValue "string", "[clinet_secret 키명]", "[client_secret]"
}
-
Firebase 제품과의 crash 방지
- Firebase 제품을 한 가지라도 사용 중이라면 loplat SDK 와 crash가 발생할 수 있습니다.
이를 방지하기 위해
FirebaseApp.initializeApp(context)
를Application.onCreate()
최상단에 명시적으로 호출해야 합니다.
public class MainApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FirebaseApp.initializeApp(this);
...
}
}
Android Support 라이브러리 적용
- androidX 라이브러리를 사용한다면
implementation 'androidx.appcompat:appcompat:1.4.0'
- appcompat-v7 라이브러리를 사용한다면 26버전 이상으로 적용해주세요.
implementation 'com.android.support:appcompat-v7:26.1.0'
Google Play Services 라이브러리 적용하기
-
(필수)효율적인 위치 정보 획득을 위해서
build.gradle
의 dependency에 아래와 같이 라이브러리 적용이 필요합니다.implementation 'com.google.android.gms:play-services-location:21.0.1'