일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- glide
- android 지도
- android daum map
- JetpackCompose
- Android
- 아키텍처
- Clean Architecture
- RecyclerView
- 클린 아키텍처
- 안드로이드광고
- Firebase
- HTTP
- 애드몹광고
- 안드로이드컴포즈
- android kakao map
- ImageView
- 파이어베이스
- 젯팩컴포즈
- 동적 링크
- 안드로이드 라이브러리
- 안드로이드
- 안드로이드 카카오 지도
- 선언형UI
- component
- 애드몹배너
- 컴포넌트
- dynamiclink
- Android 애드몹
- 다이나믹 링크
- thread
- Today
- Total
코딩스토리
[Android/안드로이드] Kakao 지도 API 연동/카카오 지도 API연동 본문
카카오 지도 API를 연동하기 위해서 SDK를 다운로드 받고, 앱 키를 발급받아야합니다.
APP KEY 발급
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
먼저 App key를 발급받기 위해서 kakao developer에 들어가서 로그인을 해줍니다.
로그인 후 내 애플리케이션 에서 애플리케이션 추가하기를 누르게 되면 앱을 추가할 수 있습니다.

앱을 생성했으면 이제 안드로이드 플랫폼을 설정해줘야 합니다.

왼쪽 플랫폼 탭에서 Android 플랫폼 등록을 해주게 되면

다음과 같은 창이 뜹니다.
패키지명을 입력해주고, 마켓 URL은 없으면 없음을 선택해주시면 됩니다.
키 해시의 값은 지난번에 포스팅한
2019/12/16 - [Android/유용한 기술] - [Android/안드로이드] 해시키(Hash key) 가져오는 방법
[Android/안드로이드] 해시키(Hash key) 가져오는 방법
해시키는 앱마다 가지고 있는 고유키입니다. 페이스북 SDK, 카카오톡 SDK 등과 연동하기 위해서는 해시키(Hash key)를 가지고 각각의 앱을 구분하여 설정된 기능을 제공하기 때문에 반드시 해시키(Ha
lakue.tistory.com
를 참조해주세요.

이제 플랫폼 등록이 완료되었습니다.

요약정보에 가시면 다양한 앱 키에 대해서 나옵니다. 저희는 안드로이드니까 네이티브 앱 키를 사용할 예정입니다.
SDK 라이브러리 추가
apis.map.kakao.com/android/guide/
에 들어가셔서

SDK를 다운받아줍니다.

다운로드를 받고 알집을 풀게되면 다음과 같이
libDaumMapAndroid.jar파일과 아키텍쳐별로 libMapEnginApi.so파일로 구성되어 있습니다.
이제 이 파일들을 안드로이드 스튜디오 프로젝트에 SDK라이브러리를 추가해줍니다.

다음과 같이
libDaumMapAndroid.jar파일은 /app/libs/에 넣어주고,
나머지 파일들은 app/source/main/jniLibs에 복사를 해주시면 됩니다.
마지막으로 build.gradle(Module:app)에 다음과 같이 아까 SDK라이브러리를 복사한 라이브러리를 추가해주면 daum map api를 사용할 수 있습니다.
implementation files('libs/libDaumMapAndroid.jar')
라이브러리 사용하기
이제 본 프로젝트로 들어와서 AndroidManifest.xml에 Permission과 앱 키를 주가해줘야합니다.
manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config"
...>
<activity android:name=".MainActivity">
...
</activity>
<meta-data android:name="com.kakao.sdk.AppKey" android:value="5416ba37b7be46d1f8bb2c4287931d7a"/>
</application>
</manifest>
지도 SDK의 지도 타일은 http 통신을 하기 때문에 http 통신에 대한 예외 처리를 해 주셔야 합니다.
res/xml 에 network_security_config.xml을 생성해줍니다.
network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
이제 네트워크와 API설정은 끝났고, 맵뷰를 생성해보겠습니다.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<RelativeLayout
android:id="@+id/map_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
MainActivity.java
package com.lakue.googlemapsample;
import android.os.Bundle;
import android.view.ViewGroup;
import androidx.appcompat.app.AppCompatActivity;
import net.daum.mf.map.api.MapView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MapView mapView = new MapView(this);
ViewGroup mapViewContainer = (ViewGroup) findViewById(R.id.map_view);
mapViewContainer.addView(mapView);
}
}
주의할점은 MapView를 Import할 때 두가지가 나오는데 'net.daum.mf.map.api.MapView'를 import해줘야합니다.

이제 KakaoMap Api연동이 완성되었습니다~
'Android > 유용한 기술' 카테고리의 다른 글
[Android/안드로이드] View 최상단으로 올리기(BringToFront) (0) | 2020.09.22 |
---|---|
[Android/android] Button 클릭 애니메이션 주기(Ripple Effect) (0) | 2020.09.21 |
[Android/안드로이드] 알람울리기/진동울리기/알림 Notification (0) | 2020.09.13 |
[Android/안드로이드] RecyclerView ItemDecoration으로 아이템 항목 구분지어주기 (0) | 2020.09.12 |
[Android/안드로이드] RecyclerView LayoutManager타입별 사용하기 (0) | 2020.09.11 |