본문 바로가기

프로그래밍/안드로이드

[Android/KakaoAPI] 안드로이드 앱에서 카카오 지도 사용하기

안드로이드 스튜디오에서 카카오 지도 API를 사용하는 방법이다.

 

Kakao Developers 지도/로컬

 

Kakao Developers

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

developers.kakao.com


Kakao API 키 발급, 앱 등록

카카오 지도를 사용하기 위해서는 먼저 카카오 개발사 사이트에서 API 키를 발급받아야 한다. 아래 사이트로 이동한 후 가입이 안되어있으면 가입하고, 다음 과정을 진행한다.

 

Kakao Developers

 

Kakao Developers

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

developers.kakao.com

 

1. 상단의 "내 애플리케이션" 클릭
2. "애플리케이션 추가하기" 클릭
3. 정보 입력
4. 좌측 메뉴에서 "플랫폼" 클릭
5. "Android 플랫폼 등록" 클릭
6. 앱 정보 입력

이때 앱의 키 해시를 등록해야 한다. 키 해시를 확인하는 방법을 알아본다.

안드로이드 앱 키 해시 확인

※ 키 해시 확인 방법은 다음 블로그 글을 참고했습니다.

Windows에서 Android debug key hash 얻기 – Jimmy(이호준) (wordpress.com)

 

Windows에서 Android debug key hash 얻기

프로젝트 초기단계에서 한번얻고 다시 쓸일은 거의 없지만, 항상 오랜만에 다시해보려고하면 삽질의 연속에 부딪힌다. 지난번에는 ‘이번이 마지막 삽질이야…!’하며 다음번엔 곧잘 할것으로

zeallat.wordpress.com

 

a. openssl 다운로드 후 압축 풀기

버전이 세 개가 있는데 버전마다 키 해시 값이 다르게 나온다. 본인의 경우 e버전에서 나온 키 값이 작동했다.

 

b. 환경 변수에 openssl\bin 위치 등록

다운로드한 openssl의 압축을 풀고, 환경 변수-시스템 변수 "Path"에 openssl\bin 위치를 등록한다.

 

c. 터미널에 명령어 입력

CMD를 열고 다음 명령어를 입력한다.

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

비밀번호 입력이 나오면 android를 입력한다. 출력된 키 해시 값을 카카오 개발자 페이지에 등록한다.

안드로이드 스튜디오에 지도 API 추가

먼저 이곳을 클릭해서 카카오 지도 SDK를 다운로드한다.

 

1. 다운로드한 파일들을 프로젝트 내 위치에 맞게 옮긴다.

폴더가 없으면 폴더를 생성해서 옮기면 된다. 그 후 앱 Gradle에 다음 문장을 추가한다.

build.gradle (:app)
 
dependencies {
    implementation files('libs/libDaumMapAndroid.jar')
}

 

res/xmlnetwork_security_config.xml 파일을 생성한다.

 

2. res/xml 에 network_security_config.xml 생성

다음 코드를 붙여 넣는다.

network_security_config.xml
 
<?xml version="1.0" encoding="utf-8"?>
<!-- http 통신 허용 -->
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>

 

마지막으로 Manifest에 다음과 같이 추가한다.

AndroidManifest.xml
 
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.mechacat">
    
    <!-- 인터넷, 위치 권한 -->
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <!-- http 통신 허용 -->
    <application
        ...
        android:usesCleartextTraffic="true"
        android:networkSecurityConfig="@xml/network_security_config">

        <!-- 네이티브 앱 키 추가 -->
        <meta-data android:name="com.kakao.sdk.AppKey" android:value="네이티브 앱 키"/>
    </application>

</manifest>

네이티브 앱 키는 카카오 개발자 페이지에서 내 애플리케이션-앱 정보-요약 정보에서 확인할 수 있다.

 

이제 카카오 지도 API를 사용할 준비를 모두 마쳤다.

XML에 지도 추가

지도 뷰를 사용하려면 XML에 net.daum.mf.map.api.MapView 를 추가하면 된다. 추가하면 MapView가 추가되고 디자인 창에는 회색 배경에 SurfaceView가 나타난다.

 

참고로 카카오 지도 API는 현재 ARM 아키텍쳐만 지원하므로 x86 기반 기기(AVD 포함)에서는 사용할 수 없다.

 

실행 결과

실행하면 서울시청 쪽 지도가 나타난다.