[Android Studio] Kakao Android SDK를 Android Studio에서 Import 후 사용하기
2017. 6. 22. 18:58ㆍMobile/Xamarin
여기서는 Android Studio를 통해 Kakao Android SDK를 불러와서 구현하는 방법을 소개합니다. 보통 이 정도는 Kakao API 문서를 보고 구현할 수 있어야 하지만..., Kakao API문서만 보고 구현하다보면 수많은 오류와 이슈에 직면하기 때문에 따로 정리하였습니다.
이 글을 작성할 때 개발환경은 다음과 같습니다.
- Android Studio 2.3.3
- Minimum SDK : API 16(Android 4.0 IceCreamSandwich)
- Windows 10 Pro 64비트
- Compile Sdk Version : API 26: Android 8.0 (O)
- Build Tools Version : 26.0.0
- Min Sdk Version : 14
- Target Sdk Version : 21
- Kako Android SDK Version : 1.4.0
진행 순서는 다음과 같습니다.
- 먼저 https://developers.kakao.com/에서 App을 등록합니다.
- Kakao Android Library를 다운로드 후 압축을 풉니다. (https://developers.kakao.com/docs/android)
- Android Studio를 실행하고 새 프로젝트를 생성합니다.
- Platform은 Phone and Tablet 선택
- Minimum SDK는 API 14 이상
- Kakao Android Library를 Import 합니다.
- File - New - Import Module
- 다운로드한 Kakao Android Library 경로 입력
- 자동으로 로드되는 모든 모듈 선택
- File - New - Import Module
- 프로젝트 루트에 존재하는 build.gradle를 열고 allprojects 부분을 다음과 같이 수정합니다.1234567
allprojects {
repositories {
jcenter()
mavenCentral()
maven { url
'http://devrepo.kakao.com:8088/nexus/content/groups/public/'
}
}
}
- 프로젝트 루트의 gradle.properties를 열고 다음 라인을 추가합니다.12
KAKAO_SDK_GROUP=com.kakao.sdk
KAKAO_SDK_VERSION=1.0.51
- Module의 build.gradle (App폴더에 존재하는 build.gradle)을 열고 다음을 수정합니다.
(dependencies의 최하단에 KAKAO_SDK 추가)123456789dependencies {
compile fileTree(dir:
'libs'
, include: [
'*.jar'
])
androidTestCompile(
'com.android.support.test.espresso:espresso-core:2.2.2'
, {
exclude group:
'com.android.support'
, module:
'support-annotations'
})
compile
'com.android.support:appcompat-v7:26.+'
testCompile
'junit:junit:4.12'
compile group: project.KAKAO_SDK_GROUP, name:
'kakaolink'
, version: project.KAKAO_SDK_VERSION
}
- res/values/strings.xml 파일을 열고 다음 3개의 라인을 추가합니다.1234567891011
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
resources
>
<
string
name
=
"app_name"
>Aar.Kakao</
string
>
<!-- 하단의 '앱키'는 App등록 시 발급받은 '네이티브 앱 키'로 대체 -->
<
string
name
=
"kakao_app_key"
>앱키</
string
>
<!-- 하단의 '앱키'는 App등록 시 발급받은 '네이티브 앱 키'로 대체 (kakao + 앱키 형태로 작성) -->
<
string
name
=
"kakao_scheme"
>kakao앱키</
string
>
<
string
name
=
"kakaolink_host"
>kakaolink</
string
>
</
resources
>
- AndroidManifest.xml을 열고 다음과 같이 2개 라인을 추가합니다.
- <intent-filter> 태그 하위에 다음 라인 추가
1
<
data
android:scheme
=
"@string/kakao_scheme"
android:host
=
"@string/kakaolink_host"
/>
- application 태그가 끝나기 전에 다음 라인 추가1
<
meta-data
android:name
=
"com.kakao.sdk.AppKey"
android:value
=
"@string/kakao_app_key"
/>
- 완성된 전체 AndroidMenifest.xml은 다음과 같습니다.123456789101112131415161718192021222324252627282930
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
manifest
package
=
"com.droidappkakao"
xmlns:android
=
"http://schemas.android.com/apk/res/android"
>
<
application
android:allowBackup
=
"true"
android:icon
=
"@mipmap/ic_launcher"
android:label
=
"@string/app_name"
android:roundIcon
=
"@mipmap/ic_launcher_round"
android:supportsRtl
=
"true"
android:theme
=
"@style/AppTheme"
>
<
activity
android:name
=
".MainActivity"
>
<-- Spalsh Activity없이 Main Activity하나로 구성할 경우 -->
<
intent-filter
>
<
action
android:name
=
"android.intent.action.MAIN"
/>
<
category
android:name
=
"android.intent.category.LAUNCHER"
/>
</
intent-filter
>
<
intent-filter
>
<!-- 주의: Kakako 설정은 항상 LAUNCHER가 포함된 Intent-filter와 분리해 주세요.
그렇지 않으면 앱 아이콘이 사라지는 현상이 발생합니다. -->
<
action
android:name
=
"android.intent.action.VIEW"
/>
<
category
android:name
=
"android.intent.category.DEFAULT"
/>
<
category
android:name
=
"android.intent.category.BROWSABLE"
/>
<
data
android:scheme
=
"@string/kakao_scheme"
android:host
=
"@string/kakaolink_host"
/>
</
intent-filter
>
</
activity
>
<
meta-data
android:name
=
"com.kakao.sdk.AppKey"
android:value
=
"@string/kakao_app_key"
/>
</
application
>
</
manifest
>
Splash Activity를 따로 구성할 경우 아래와 같은 구조로 작성하실 수 있습니다. LAUNCHER와 Kakao설정은 다른 Intent-filter로 분리해야 합니다. 그렇지 않으면 앱아이콘이 사라지는 문제가 발생합니다.
12345678910111213141516171819202122232425262728293031323334<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
manifest
package
=
"com.droidappkakao"
xmlns:android
=
"http://schemas.android.com/apk/res/android"
>
<
application
android:allowBackup
=
"true"
android:icon
=
"@mipmap/ic_launcher"
android:label
=
"@string/app_name"
android:roundIcon
=
"@mipmap/ic_launcher_round"
android:supportsRtl
=
"true"
android:theme
=
"@style/AppTheme"
>
<-- Spalsh Activity를 사용할 경우 XML구조 -->
<
activity
android:name
=
".SplashActivity"
>
<
intent-filter
>
<
action
android:name
=
"android.intent.action.MAIN"
/>
<
category
android:name
=
"android.intent.category.LAUNCHER"
/>
</
intent-filter
>
</
activity
>
<
activity
android:name
=
".MainActivity"
>
<!-- 주의: Kakako 설정은 항상 LAUNCHER가 포함된 Intent-filter와 분리해 주세요.
그렇지 않으면 앱 아이콘이 사라지는 현상이 발생합니다. -->
<
intent-filter
>
<
action
android:name
=
"android.intent.action.VIEW"
/>
<
category
android:name
=
"android.intent.category.DEFAULT"
/>
<
category
android:name
=
"android.intent.category.BROWSABLE"
/>
<
data
android:scheme
=
"@string/kakao_scheme"
android:host
=
"@string/kakaolink_host"
/>
</
intent-filter
>
</
activity
>
<
meta-data
android:name
=
"com.kakao.sdk.AppKey"
android:value
=
"@string/kakao_app_key"
/>
</
application
>
</
manifest
>
- <intent-filter> 태그 하위에 다음 라인 추가
- 이제 Activity에서 Kakao SDK를 호출하시면 됩니다. 여기서는 카카오링크를 실행하는 버튼을 추가해보도록 하겠습니다.
res/layout/activity_main.xml을 열고 다음과 같이 버튼을 추가합니다.
12345678910111213141516171819<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
android.support.constraint.ConstraintLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
xmlns:app
=
"http://schemas.android.com/apk/res-auto"
xmlns:tools
=
"http://schemas.android.com/tools"
android:layout_width
=
"match_parent"
android:layout_height
=
"match_parent"
tools:context
=
"com.droidappkakao.MainActivity"
>
<
Button
android:id
=
"@+id/btnKakaoLink"
android:text
=
"Run KakaoLink"
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
app:layout_constraintBottom_toBottomOf
=
"parent"
app:layout_constraintLeft_toLeftOf
=
"parent"
app:layout_constraintRight_toRightOf
=
"parent"
app:layout_constraintTop_toTopOf
=
"parent"
/>
</
android.support.constraint.ConstraintLayout
>
- 이제 MainActivity.java를 열고 Kakao Link API를 사용해봅시다. API에 대한 상세한 내용은 개발가이드를 참고해주세요.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
package
com.droidappkakao;
import
android.support.v7.app.AppCompatActivity;
import
android.os.Bundle;
import
android.util.Log;
import
android.view.View;
import
android.widget.Button;
import
com.kakao.KakaoLink;
import
com.kakao.KakaoParameterException;
import
com.kakao.KakaoTalkLinkMessageBuilder;
public
class
MainActivity
extends
AppCompatActivity
{
private
KakaoLink kakaoLink;
private
KakaoTalkLinkMessageBuilder kakaoTalkLinkMessageBuilder;
@Override
protected
void
onCreate(Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try
{
kakaoLink = KakaoLink.getKakaoLink(
this
);
kakaoTalkLinkMessageBuilder = kakaoLink.createKakaoTalkLinkMessageBuilder();
}
catch
(KakaoParameterException e)
{
Log.e(
"error"
, e.getMessage());
}
Button button = (Button) findViewById(R.id.btnKakaoLink);
button.setOnClickListener(
new
View.OnClickListener()
{
@Override
public
void
onClick(View view)
{
try
{
Button btnSender = (Button)view;
kakaoTalkLinkMessageBuilder.addText(
"TEST"
);
kakaoLink.sendMessage(kakaoTalkLinkMessageBuilder.build(), btnSender.getContext());
}
catch
(KakaoParameterException e)
{
Log.e(
"error"
, e.getMessage());
}
}
});
}
}
- 위 앱을 실행하신 후 버튼을 클릭하면 카카오톡으로 연결되는 것을 보실 수 있습니다.
'Mobile > Xamarin' 카테고리의 다른 글
[Xamarin] Xamarin을 위한 .NET Standard Library (0) | 2017.09.13 |
---|---|
[Xamarin] Xamarin.Forms 공용코드를 .NET Standard Library로 작성하기 (0) | 2017.09.11 |
[Xamarin.Android] Binding Java Library (0) | 2017.06.22 |
[Xamarin.Forms] CustomRenderer 제작 시 참고사항 (0) | 2017.06.10 |
[SQLite.NET] Xamarin에서 SQLite사용하기 (0) | 2017.05.21 |