Android Studio 3.3.2
1. gradle.properties (Project Properties) 파일에 버전정보 추가
KAKAO_SDK_GROUP=com.kakao.sdk
KAKAO_SDK_VERSION=1.17.0
2. kakao_strings.xml 파일을 작성해서 아래 코드를 추가한다.
<resources>
<string name="kakao_app_key">앱키</string>
</resources>
3. build.gradle (Project: 프로젝트명) 파일에 maven repository 경로 정보 추가
allprojects {
repositories {
google()
jcenter()
maven { url 'http://devrepo.kakao.com:8088/nexus/content/groups/public/' }
}
}
4. build.gradle (Module: app) 파일에 kakaonavi 라이브러리 정보 추가
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
. . .
// 카카오내비 sdk를 사용하기 위해 필요.
implementation group: 'com.kakao.sdk', name: 'kakaonavi', version: project.KAKAO_SDK_VERSION
}
5. AndroidManifest.xml 파일에 권한 및 AppKey 추가
카카오내비 SDK는 카카오내비 앱이 설치되어 있지 않을 때 기본적으로 웹뷰를 사용하여 길안내를 시작합니다.
이 기 능을 사용하기 위해서는 앱에 위치 권한을 줘야 합니다.
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application>
. . .
<meta-data android:name="com.kakao.sdk.AppKey" android:value="@string/kakao_app_key"/>
. . .
</application>
만약 웹뷰를 사용하기 싫거나 앱에 위치 권한을 사용하는 것이 부담스럽다면 AndroidManifest.xml에서
위치 권한을 빼고 "com.kakao.sdk.kakaonavi.useWebView" 라는 값을 false로 지정해 줍니다.
<uses-permission android:name="android.permission.INTERNET" />
<application>
. . .
<meta-data android:name="com.kakao.sdk.AppKey" android:value="@string/kakao_app_key" />
<meta-data android:name="com.kakao.sdk.kakaonavi.useWebView" android:value="false" />
. . .
</application>
네비게이션 앱을 호출할 준비가 끝났습니다. KakaoNaviService를 이용해서 API 요청을 합니다. KakaoNaviService는 인텐트 호출을 통하여 카카오내비 앱 또는 브라우저를 구동하여 목적지 공유/길안내 기능을 실행합니다. 카카오내비 앱이 설치되어 있을 경우에는 앱을 호출하고 그렇지 않을 경우에는 기본 브라우저로 카카오내비의 웹버전을 엽니다.
다음 코드는 카카오내비를 호출해서 현재 위치에서 '서울특별시청'까지 길안내를 시작하는 예제 입니다.
// Location.Builder를 사용하여 Location 객체를 만든다.
val destination = Location.newBuilder("서울특별시청", 126.978431, 37.566623).build()
// 1종차량, 빠른길, 최단거리 길안내
val options = NaviOptions.newBuilder().setCoordType(CoordType.WGS84).setVehicleType(VehicleType.FIRST)
.setRpOption(RpOption.SHORTEST).build()
// 경유지를 포함하지 않는 KakaoNaviParams.Builder 객체
val builder = KakaoNaviParams.newBuilder(destination).setNaviOptions(options)
// 카카오내비 호출
KakaoNaviService.getInstance().navigate(this, builder.build());
'프로그램 > Android' 카테고리의 다른 글
[Kotlin] Naver 지도 표시하기 - <FrameLayout> (0) | 2019.04.16 |
---|---|
[Kotlin] Naver 지도 표시하기 - <fragment > (0) | 2019.04.13 |
[Kotlin] 다음 지도, 기본 마커(Marker) 추가 (0) | 2019.04.10 |
[Kotlin] 다음지도 중심점, 레벨(zoom) 변경 (0) | 2019.04.09 |
[Kotlin] Daum 지도 표시하기 (0) | 2019.04.08 |