Development record of developer who study hard everyday.

레이블이 안드로이드카카오내비연동인 게시물을 표시합니다. 모든 게시물 표시
레이블이 안드로이드카카오내비연동인 게시물을 표시합니다. 모든 게시물 표시
, , ,

안드로이드 카카오내비 연동 구현하기

 안드로이드 카카오 내비 연동하기



회사에서 신규프로젝트를 진행하는 중에 카카오 내비를 구현해야하는 일이 생겼다.

카카오 문서를 보면서 차근차근히 따라하며 카카오내비를 구현했다.

초보개발자들에게 큰 힘이 되었으면 좋겠다.


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)
)
}

나 같은 경우에는 카카오 내비 앱을 실행해서 길찾기 기능을 사용해야했다.

코드는 워낙 간단해서 설명은 생략하겠다....


카카오 문서가 너무 잘 되어있어서 글을 쓸까말까하다 그냥 기록용으로 남기기로했다.

문서보는걸 너무 싫어하는 분들은 이 글을 읽으면 그래도 더 깔끔하게 이해가 되지 않을까 싶다.

Share:
Read More