한국에서 Parse 의 Push 서비스를 사용하는 방법이 자세히 설명된것이 없어 글을 써봅니다.
본 강좌는 Parse.com 의 Push 서비스를 사용하는 방법을 간단히 설명하고 있습니다.
1. Parse.com 가입
https://parse.com 에서 회원가입 후 새로운 Push 프로젝트를 생성합니다.
2. Parse Push SDK 다운로드
https://parse.com/downloads/android/Parse/latest 에서 SDK 파일을 다운로드 합니다.
3. SDK 설치
다운로드한 SDK 파일을 안드로이드 앱 프로젝트의 libs 폴더에 넣어줍니다.
4. AndroidManifest.xml 수정
AndroidManifest.xml 파일의 <application> 태그 전에 다음의 퍼미션들을 넣어줍니다.
<!-- Parse Permission --> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <!-- com.styleroot.dustnotify 부분은 사용자의 앱 패키지 이름을 적어주세요. --> <permission android:protectionLevel="signature" android:name="com.styleroot.dustnotify.permission.C2D_MESSAGE" /> <uses-permission android:name="com.styleroot.dustnotify.permission.C2D_MESSAGE" />
AndroidManifest.xml 파일의 <application 태그 바로 다음에 전역 클래스 이름을 지정합니다.
android:name="ParseApplication"
AndroidManifest.xml 파일의 </application> 태그 전에 다음의 리시버와 서비스를 넣어줍니다.
<!-- Parse API --> <service android:name="com.parse.PushService" /> <receiver android:name="com.parse.ParseBroadcastReceiver"> <intent-filter> <action android:name="android.intent.action.USER_PRESENT" /> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> <receiver android:name="com.parse.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND"> <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> <!-- com.styleroot.dustnotify 부분은 사용자의 앱 패키지 이름을 적어주세요. --> <category android:name="com.styleroot.dustnotify" /> </intent-filter> </receiver>
5. 안드로이드 소스 코딩
src 폴더에 ParseApplication 클래스를 생성합니다.
해당 클래스는 앱이 실행될 경우 가장 먼저 호출될 전역 클래스 입니다.
내용은 다음과 같이 작성하여 주시기 바랍니다.
// com.styleroot.dustnotify 부분은 사용자의 앱 패키지 이름을 적어주세요. package com.styleroot.dustnotify; import com.parse.Parse; import com.parse.ParseACL; import com.parse.ParseUser; import android.app.Application; public class ParseApplication extends Application { @Override public void onCreate() { super.onCreate(); Parse.initialize(this, "ApplicationID", "ClientKey"); ParseUser.enableAutomaticUser(); ParseACL defaultACL = new ParseACL(); defaultACL.setPublicReadAccess(true); ParseACL.setDefaultACL(defaultACL, true); PushService.subscribe(getApplicationContext(), "", MainActivity.class); PushService.setDefaultPushCallback(getApplicationContext(), MainActivity.class); } }
주의할 부분은 Parse.initialize 작업은 MainActivity 가 아닌 4 번에서 정의한
전역 클래스(ParseApplication) 의 OnCreate 에서 수행하여야 한다는 부분입니다.
그렇지 않을 경우 재부팅시 알림 메시지가 수신되지 않고 충돌 오류가 발생하게 됩니다.
6. Push 알림 테스트
Parse.com 의 Push 관리자 콘솔의 Push Notifications 에서 Send a Push 버튼을 통해 메시지를 테스트 할 수 있습니다.
7. Parse Data Browser 에 데이터 넣기
Parse.com 의 Push 서비스는 데이터베이스와 비슷한 기능을 제공합니다.
다음과 같은 코드로 메인 클래스에 추가적인 정보를 넣을 수 있습니다.
ParseInstallation.getCurrentInstallation().put("Observer", "테스트"); ParseInstallation.getCurrentInstallation().saveInBackground();
너무 오래전 이야기 같은데...
벌써 새 API 나왔어요.