안드로이드 GCM client 설정
GCM(Google Cloud Messaging) 을 사용하기 위해 아래 조건을 만족해야 한다.- 안드로이드 OS 가 2.2 이상이고,
- Google Play Store 가 설치되어야 한다.
- 에뮬레이터라면, 2.2 이상에 Google APIs 가 설치되어 있어야 한다.
- 그리고 앱을 올리려는 유저의 계정이 Google Play Store 에서 ban 당하지 않았어야 한다.
- 새로운 GCM features 를 사용하려면 안드로이드 OS 버전이 2.3 이상이어야 한다.
- 안드로이드 기기에서 GCM 은 Google service 를 이용하는데, 이게 Android 3.0 이전 버전에서는 Google계정에 로그인을 해야 한다. 하지만 4.0.4 이상에서는 구글 계정이 필요치 않다.
개발
GCM client application 은 아래 2가지를 포함하게 된다.- 등록(register) 하는 code
- GCM 에서 오는 message 를 받는 부분
소스 다운로드 및 설정
- 소스 다운로드 : GitHub - googlesamples/google-services:
- 다운로드 한 소스중 android/gcm 부분을 풀어놓자.
- android studio 에서 File > Open 으로 이 소스를 불러오자.
- google-services.json 을 <project_root>/app 에 copy 하자.
- <project_root>/build.gradle 에 아래 사항 추가
- classpath 'com.google.gms:google-services:1.5.0-beta2'
- <project_root>/app/build.gradle 에 "app/build.gradle 에 추가" 부분 참고.
app/build.gradle 에 추가
com.google.android.gms:play-services 의 버전은 자신의 app에 맞게 설정하면 된다. 보통 Android Studio 에서 이와 관련된 정보 메시지를 뿌려주니 참고하자.apply plugin: 'com.google.gms.google-services' dependency: { ... compile 'com.google.android.gms:play-services-gcm:8.4.0' }AndroidManifest.xml (출처: Set up a GCM Client App on Android )
<manifest package="com.example.gcm" ...> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/> <uses-permission android:name="android.permission.WAKE_LOCK" /> <permission android:name="<your-package-name>.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="<your-package-name>.permission.C2D_MESSAGE" /> <application ...> <receiver android:name="com.google.android.gms.gcm.GcmReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="com.example.gcm" /> <!-- This is for pre-4.4 (Kitkat) version --> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> </intent-filter> </receiver> <service android:name="com.example.MyGcmListenerService" android:exported="false" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> </intent-filter> </service> <service android:name="com.example.MyInstanceIDListenerService" android:exported="false"> <intent-filter> <action android:name="com.google.android.gms.iid.InstanceID" /> </intent-filter> </service> </application> </manifest>
Google Play Service 가 설치되어 있는지 확인 하는 방법
작성중...
댓글 없음:
댓글 쓰기