프로젝트생성
먼저 http://console.developers.google.com/project 여기로 들어가서 프로젝트 하나를 만든다.
https://developers.google.com/mobile/add 여기로 들어가서 GCM사용을 위한 설정을 한다.
Server API Key 및 Sender ID는 GCM을 이용하기위해 필요하므로 저장해둔다.
(google-services.json 파일을 다운로드하여 프로젝트안에 저장한다 – 생략해도됨)
Android – Client
2개의 build.gradle 파일에 형광색으로 표시된 부분을 추가한다.
apply plugin: 'com.google.gms.google-services'
compile "com.google.android.gms:play-services:7.5.+"
classpath 'com.google.gms:google-services:1.3.0-beta1'
manifest에 permission, receiver, service를 등록한다.
receiver 는 만들 필요 없고 MyGcmListenerService 와 MyInstanceIDListenerService를 만들고
onMessgeReceived(String,Bundle) 함수와 onTokenRefresh()함수를 오버라이드 한다.
onMessageReceived method는 메시지가 전달 되었을때 호출되는 함수이고
onTokenRefresh method는 token은 나의 주소 정도로 생각하면되는데 이 token을 서버에 저장을 해두고 server는
gcm server에 token을 같이 보냄으로서 해당 앱에 푸쉬할 수있게 된다. token 은 변할 수 있는데 이 때 server에 저장되어있는
token 정보도 변경되어야지 제대로된 푸쉬를 할 수 있다.
token 정보는 위 처럼 구할 수 있는데 R.string.gcm_defaultSenderId부분은 google-service.json 파일을 다운로드 하지 않은
경우 위에서 구한 Sender_ID로 바꿔주면 된다.
Node.js – Server
server_api_key 는 아까 gcm 설정하면서 얻었던 Server API Key이다.
gcm.Message 객체를 생성하고 각 옵션들을 설정한 후 data에는 전송할 data를 쓰면된다.
Server에서 Client로 푸시를 보낼때 Token이 필요한데 이는 위에서 언급했듯이 Client에서 구해서 Server에 저장해야한다.
registrationIds 여기에 아래처럼 Token들을 넣어 전송하면 된다.
registrationIds.push("Token); registrationIds.push("Token);
- GCM은 한번에 1000개의 Token들에게 메시지를 보낼 수있다.
요약
프로젝트 생성후 gcm 을 이용하기위해 server api key 와 sender id를 얻는다.
gradle에 library를 추가하고 classpath 설정 및 plugin을 적용한다.
permission, receiver, service 를 등록하고 service는 구현한다.
token 정보를 구하고 이를 server에 저장한다.
server에서는 sender 객체를 생성하고 token 및 data 정보를 gcm server로 전송한다.
'개발 > 안드로이드' 카테고리의 다른 글
카드뷰(cardview) 속성 (0) | 2016.04.13 |
---|---|
안드로이드 비트맵 drawable 간에 변환하기 (0) | 2016.04.07 |
안드로이드 6.0 Marshmallow 권한 획득하기 API 사용하기 (0) | 2016.03.31 |
ClipToPadding() 메서드의 비밀 (0) | 2016.03.31 |
안드로이드 clipToPadding 속성 (0) | 2016.03.31 |
댓글