안드로이드 스튜디오에서 카카오 지도 API를 사용하는 방법이다.
Kakao API 키 발급, 앱 등록
카카오 지도를 사용하기 위해서는 먼저 카카오 개발사 사이트에서 API 키를 발급받아야 한다. 아래 사이트로 이동한 후 가입이 안되어있으면 가입하고, 다음 과정을 진행한다.
이때 앱의 키 해시를 등록해야 한다. 키 해시를 확인하는 방법을 알아본다.
안드로이드 앱 키 해시 확인
※ 키 해시 확인 방법은 다음 블로그 글을 참고했습니다.
Windows에서 Android debug key hash 얻기 – Jimmy(이호준) (wordpress.com)
버전이 세 개가 있는데 버전마다 키 해시 값이 다르게 나온다. 본인의 경우 e버전에서 나온 키 값이 작동했다.
다운로드한 openssl의 압축을 풀고, 환경 변수-시스템 변수 "Path"에 openssl\bin 위치를 등록한다.
CMD를 열고 다음 명령어를 입력한다.
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
비밀번호 입력이 나오면 android를 입력한다. 출력된 키 해시 값을 카카오 개발자 페이지에 등록한다.
안드로이드 스튜디오에 지도 API 추가
먼저 이곳을 클릭해서 카카오 지도 SDK를 다운로드한다.
폴더가 없으면 폴더를 생성해서 옮기면 된다. 그 후 앱 Gradle에 다음 문장을 추가한다.
dependencies {
implementation files('libs/libDaumMapAndroid.jar')
}
res/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에 다음과 같이 추가한다.
<?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 포함)에서는 사용할 수 없다.
실행하면 서울시청 쪽 지도가 나타난다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[Android/KakaoAPI] 카카오 장소 검색 (Retrofit) (0) | 2021.01.13 |
---|---|
[Android/KakaoAPI] 카카오 지도에서 현재 위치 추적 (3) | 2021.01.12 |
[Android/Firebase] 실시간 데이터 수신 (+초 단순한 대화앱) (1) | 2021.01.07 |
[Android/Firebase] Firestore 읽기, 쓰기 (0) | 2021.01.05 |
[Android/Firebase] 안드로이드 프로젝트에 Firestore 연동 (0) | 2021.01.03 |