본문 바로가기

Android/note

[kotlin] Kakao Map API 연결

이 글을 쓰는 목적

새 프로젝트를 진행할 때 매번 지도를 연결할 때마다

Hash Key를 검색해서 가져오곤 했는데

그냥 내 블로그에 올려놓으면 다음번에 찾기 쉬우니까,,

 

Kakao Developers 로그인하기

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

내 애플리케이션 추가하기

 

카카오계정 로그인

여기를 눌러 링크를 확인하세요.

accounts.kakao.com

나는 배포 할 목적은 아니라서 앱 아이콘은 아무 사진을 선택한다.

나중에 수정이 가능하기도 하니까

 

사업자명도 개인이니까 그냥 내 이름을 넣었다.

 

어플리케이션 등록 끝!

 

플랫폼 등록하기

왼쪽 메뉴 중 플랫폼을 클릭하고

 

Android 플랫폼 등록을 선택한다.

 

보여지는 창에 맞게 모두 입력해주면 된다.

 

패키지명은 AndroidManifest.xml 파일 가장 상단에서 확인한 후 복붙한다.

 

마켓 URL은 아직 배포된 상태가 아니기때문에 없음으로 선택했다.

배포된 어플리케이션이라면 적절하게 넣으면 될 것 같다.

 

키 해시는 아래의 코드를 activity에 넣은 후 LogCat을 통해 확인한 후 입력한다.

/**
* Hash Key
*/
fun getHashKey(){
  var packageInfo : PackageInfo = PackageInfo()
  try {
    packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES)
  } catch (e: PackageManager.NameNotFoundException){
    e.printStackTrace()
  }

  for (signature: Signature in packageInfo.signatures){
    try{
      var md: MessageDigest = MessageDigest.getInstance("SHA")
      md.update(signature.toByteArray())
      Log.e("KEY_HASH", Base64.encodeToString(md.digest(), Base64.DEFAULT))
    } catch(e: NoSuchAlgorithmException){
      Log.e("KEY_HASH", "Unable to get MessageDigest. signature = " + signature, e)
    }
  }
}

 

 

라이브러리 파일 추가하기

https://apis.map.kakao.com/android/guide/#step4

SDK를 다운로드 한 후 안에 있는 파일들을 알맞는 폴더에 넣어준다.

 

폴더들을 Android로 보고 있다면 Project로 변경하는 것이 조금 더 편하다!

권한 허용과 앱 키 등록

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

AndroidManifest.xml 파일에 permission을 등록해준다.

api 가이드에는 위의 2개만 입력하라고 나와있는데

ACCESS_FINE_LOCATION을 입력하면 ACCESS_COARSE_LOCATION도 함께 등록하라고 안내된다.

 

앱 키는 Kakao developers 사이트의 요약 정보를 클릭하면 앱 키들이 보여진다.

 

이 중에서 가장 위에있는 네이티브 앱 키를 복사하여 android:value="여기에 넣으면 된다."

 

마지막으로 build.gradle(:app)에 아래의 두 줄을 입력해주면 끝!

// Kakao Map API
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation files('libs/libDaumMapAndroid.jar')