2014.01.27 09:58

Parse Push 사용 가이드

조회 수 6583 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

한국에서 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();


누군가가 채팅방에서 당신을 호출했습니다.