안드로이드 카카오 내비 연동하기
회사에서 신규프로젝트를 진행하는 중에 카카오 내비를 구현해야하는 일이 생겼다.
카카오 문서를 보면서 차근차근히 따라하며 카카오내비를 구현했다.
초보개발자들에게 큰 힘이 되었으면 좋겠다.
1. 앱 등록
카카오 디벨로퍼에 들어가서 로그인을 한다.
상위 메뉴에서 내 애플리케이션 -> 애플리케이션 추가하기
2. 앱 키 저장
우리는 안드로이드 개발자니까 네이티브 앱 키를 복사하여 strings.xml 파일에 저장한다.
<resources>
<!--example-->
<string name="kakao_native_key">424z362o293387413aec0540f4bf6mnf</string>
</resources>
위의 코드가 나의 예시이다.
3. 플랫폼 등록
안드로이드 플랫폼 등록을해준다.
패키지명 쓰면 되고 그럼 마켓 URL 자동 생성된다.
키 해시가 문제인데 카카오 문서를 보면 아주 자세하게 설명이 되어있다.
여러가지 방법이 있지만 제일 간단한 방법으로 다음과 같은 방식을 추천한다.
var keyHash = Utility.getKeyHash(this)
Log.d(TAG, "keyHash : $keyHash")
나 같은 경우에는 MainActivity에서 onCreate() 에서 위 코드를 실행했다.
그리고 keyHash 값을 안드로이드 플랫폼 등록할 때 키해시로 사용하면된다.
✋만약 내 글의 순서를 그대로 따라하는 중이라면 Utility가 빨간색일 것이다.
아직 build.gradle에 카카오sdk를 추가하지 않아서 그렇다.
4. dependency 추가하기
dependencies {
//kakao navi
implementation "com.kakao.sdk:v2-navi:2.11.2"
}
build.gradle(module) 수준에서 카카오 내비 sdk를 추가해준다.
카카오 sdk 레파지토리도 설정해주어야한다.
settings.gradle에 아래와 같이 추가해준다.
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
//jcenter() // Warning: this repository is going to shut down soon
maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
}
}
5. 인터넷 권한 설정
위 캡쳐화면처럼 manifest.xml 에 인터넷 권한을 추가해준다.
6. 카카오 SDK 초기화
Application 객체가 없다면 만들어주고 onCreate()에서 카카오 SDK를 초기화해주어야한다.
class MainApplication: Application() {
override fun onCreate() {
super.onCreate()
//kakao sdk 초기화
KakaoSdk.init(this, getString(R.string.kakao_native_key))
}
}
그리고 자주 까먹는게 있는데
<application
android:name="xxx.xxx.xxx.MainApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
위 코드처럼 manifest.xml 에서 application 태그에 name을 꼭 적어주어야한다.
7. 카카오 내비 실행
if(NaviClient.instance.isKakaoNaviInstalled(requireContext())){
Log.d(TAG, "kakaoNavi installed")
// 카카오내비 앱으로 길 안내 - WGS84
startActivity(
NaviClient.instance.navigateIntent(
com.kakao.sdk.navi.model.Location("목적지", "경도", "위도"),
NaviOption(coordType = CoordType.WGS84)
)
)
} else {
Log.d(TAG, "kakaoNavi uninstalled")
// 카카오내비 설치 페이지로 이동
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("market://details?id=com.locnall.KimGiSa")
).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP)
)
}
나 같은 경우에는 카카오 내비 앱을 실행해서 길찾기 기능을 사용해야했다.
코드는 워낙 간단해서 설명은 생략하겠다....
카카오 문서가 너무 잘 되어있어서 글을 쓸까말까하다 그냥 기록용으로 남기기로했다.
문서보는걸 너무 싫어하는 분들은 이 글을 읽으면 그래도 더 깔끔하게 이해가 되지 않을까 싶다.