[컴][안드로이드] push notification 구현 - 3



안드로이드 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가지를 포함하게 된다.
  1. 등록(register) 하는 code
  2. GCM 에서 오는 message 를 받는 부분
개발의 시작은 아래 sample code 에서 부터 시작하면 된다.


소스 다운로드 및 설정

  1. 소스 다운로드 : GitHub - googlesamples/google-services: 
  2. 다운로드 한 소스중 android/gcm 부분을 풀어놓자.
  3. android studio 에서 File > Open 으로 이 소스를 불러오자.
  4. google-services.json 을 <project_root>/app 에 copy 하자.
  5. <project_root>/build.gradle 에 아래 사항 추가
  6. classpath 'com.google.gms:google-services:1.5.0-beta2'
  7. <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 가 설치되어 있는지 확인 하는 방법

작성중...

Reference

  1. Set up a GCM Client App on Android  |  Cloud Messaging  |  Google Developers

댓글 없음:

댓글 쓰기