[next] gcm을 이용한 게시글 자동...
TRANSCRIPT
DAY����������� ������������������ 10����������� ������������������
GCM����������� ������������������ 을����������� ������������������ 활용하자
게시글����������� ������������������ 갱신을����������� ������������������ 동기화하기
게시글을����������� ������������������ 갱신하기����������� ������������������ 위해서����������� ������������������ 현재상황은?
Refresh����������� ������������������ Button을����������� ������������������ 클릭해서.
ServerAndroid����������� ������������������ Application
버튼클릭
JSON����������� ������������������ Data
Proxy().getJSON()
Refresh����������� ������������������ Button을����������� ������������������ 클릭해서.
Refresh����������� ������������������ Button을����������� ������������������ 클릭해서.
혹은,����������� ������������������ Service를����������� ������������������ 통해����������� ������������������ 주기적으로����������� ������������������ 갱신중
혹은,����������� ������������������ Service를����������� ������������������ 통해����������� ������������������ 주기적으로����������� ������������������ 갱신중
Server
JSON����������� ������������������ Data
Proxy().getJSON()Service
이번����������� ������������������ 수업����������� ������������������ 에서는����������� ������������������ 다른����������� ������������������ 사용자가����������� ������������������ 게시글을����������� ������������������ 올렸을때����������� ������������������ ����������� ������������������
GCM을����������� ������������������ 활용해서����������� ������������������ 자동으로����������� ������������������ 게시글을����������� ������������������ 갱신하도록����������� ������������������ 만들겠습니다.
GCM����������� ������������������ (����������� ������������������ Google����������� ������������������ Cloud����������� ������������������ Messaging����������� ������������������ )
Google����������� ������������������ Cloud����������� ������������������ Messaging����������� ������������������ Service는����������� ������������������ 서버로부터����������� ������������������ 안드로이드����������� ������������������ 어플리케이션에����������� ������������������ 메세지를����������� ������������������ 보내는����������� ������������������ 것을����������� ������������������ 도와주는����������� ������������������
무료����������� ������������������ 서비스이다.����������� ������������������ 메세지는����������� ������������������ 서버로부터����������� ������������������ 안드로이드����������� ������������������ 어플리케이션에게����������� ������������������ “새로운����������� ������������������ 이메일����������� ������������������ 알림”과����������� ������������������ 같은����������� ������������������ 통지����������� ������������������ 정보를����������� ������������������
전달할����������� ������������������ 수����������� ������������������ 있다.
GCM����������� ������������������ (����������� ������������������ Google����������� ������������������ Cloud����������� ������������������ Messaging����������� ������������������ )
GCM����������� ������������������ 구현체는����������� ������������������ GCM����������� ������������������ Connection����������� ������������������ Server,����������� ������������������ 3rd-Party����������� ������������������ Server����������� ������������������ App,Client����������� ������������������ App����������� ������������������ 으로����������� ������������������ 구성되어있습니다.����������� ������������������
이것들을����������� ������������������ GCM의����������� ������������������ Components����������� ������������������ 라고����������� ������������������ 불립니다.����������� ������������������
GCM����������� ������������������ Components
GCM을����������� ������������������ 사용가능한����������� ������������������ 어플리케이션.����������� ������������������ 2.2버전과����������� ������������������ Google����������� ������������������ Play����������� ������������������ Store가����������� ������������������ 설치되어있어야����������� ������������������
하고����������� ������������������ 만약����������� ������������������ 4.0.4버전보다����������� ������������������ 낮다면����������� ������������������ 적어도����������� ������������������ 한번����������� ������������������ Google����������� ������������������ 계정에����������� ������������������ 로그인����������� ������������������ 되어있어야����������� ������������������ 한다.
GCM을����������� ������������������ 구현한����������� ������������������ 부분이����������� ������������������ 작성된����������� ������������������ 어플리케이션����������� ������������������ 서버.����������� ������������������ 3rd-party����������� ������������������ 어플리케이션����������� ������������������ 서버는����������� ������������������
GCM����������� ������������������ Connection����������� ������������������ Server를����������� ������������������ 통해����������� ������������������ 안드로이드����������� ������������������ 어플리케이션에게����������� ������������������ 데이터를����������� ������������������ 전송한다.����������� ������������������
구글이����������� ������������������ 제공한����������� ������������������ 서버,����������� ������������������ 3rd����������� ������������������ Party����������� ������������������ Server와����������� ������������������ 메세지들을����������� ������������������ 전달받을����������� ������������������ 디바이스����������� ������������������ 사이에서����������� ������������������ 중계
하는����������� ������������������ 역할
Client����������� ������������������ App����������� ������������������
3rd-party����������� ������������������ Application����������� ������������������ Server����������� ������������������ ����������� ������������������
GCM����������� ������������������ Connection����������� ������������������ Servers
GCM의����������� ������������������ 기본적인����������� ������������������ 역할을����������� ������������������ 실행하는����������� ������������������ 객체들
GCM����������� ������������������ Credentials
Sender����������� ������������������ ID프로젝트����������� ������������������ 넘버.����������� ������������������ API����������� ������������������ console에서����������� ������������������ 획득한다.����������� ������������������ Sender����������� ������������������ ID는����������� ������������������ 3rd����������� ������������������ Party����������� ������������������
Server에서����������� ������������������ 메세지를����������� ������������������ 보낼때����������� ������������������ 사용하는����������� ������������������ 아이디.
Application����������� ������������������ ID
메세지를����������� ������������������ 받기위해서����������� ������������������ 등록하는����������� ������������������ 아이디이다.����������� ������������������ 어플리케이션의����������� ������������������ 패키지����������� ������������������ 이
름에����������� ������������������ 의해서����������� ������������������ 확인한다.����������� ������������������ 메세지가����������� ������������������ 올바른����������� ������������������ 안드로이드����������� ������������������ 어플리케이션에����������� ������������������ ����������� ������������������
타겟����������� ������������������ 되는것을����������� ������������������ 보증한다.����������� ������������������
Registration����������� ������������������ ID
메세지를����������� ������������������ 받는것이����������� ������������������ 허가된����������� ������������������ 안드로이드����������� ������������������ 어플리케이션에게����������� ������������������ GCM����������� ������������������
Connection����������� ������������������ Server가����������� ������������������ 발행하는����������� ������������������ ID이다.����������� ������������������ 사용자����������� ������������������ 한명당����������� ������������������ 한개씩����������� ������������������ 부여가����������� ������������������
된다.����������� ������������������ 3rd����������� ������������������ Party����������� ������������������ Server에서는����������� ������������������ 메세지를����������� ������������������ 주어야����������� ������������������ 하는����������� ������������������ 디바이스를����������� ������������������ 인식
하기����������� ������������������ 위해서����������� ������������������ 사용한다.
인증과����������� ������������������ 올바른����������� ������������������ 장소에����������� ������������������ 메세지를����������� ������������������ 보내기����������� ������������������ 위한����������� ������������������ 것
이제,����������� ������������������ 구현을����������� ������������������ 시작해봅시다.
순서
1. Google����������� ������������������ Console에서����������� ������������������ API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.����������� ������������������
2. Client����������� ������������������ Application을����������� ������������������ 구현����������� ������������������
3. Application����������� ������������������ Server를����������� ������������������ 구현
GCM����������� ������������������ (����������� ������������������ Google����������� ������������������ Cloud����������� ������������������ Messaging����������� ������������������ )
API����������� ������������������ Project를����������� ������������������ 생성하면����������� ������������������ ����������� ������������������
구글이����������� ������������������ 이미����������� ������������������ 만들어서����������� ������������������ 제공하는����������� ������������������ GCM����������� ������������������ Connection����������� ������������������ Servers에����������� ������������������ ����������� ������������������
3rd����������� ������������������ Party����������� ������������������ App����������� ������������������ Server(우리의����������� ������������������ 서버)와����������� ������������������ Client����������� ������������������ App이����������� ������������������ 접근할����������� ������������������ 수����������� ������������������ 있게����������� ������������������ 됩니다.
API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.
https://console.developers.google.com/project에����������� ������������������ 접속한����������� ������������������ 후����������� ������������������ Create����������� ������������������ Project를����������� ������������������ 클릭한다
API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.
New����������� ������������������ Project를����������� ������������������ 만든다.
API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.
Project의����������� ������������������ Dashboard로����������� ������������������ 접속하면����������� ������������������ 상위의����������� ������������������ Project����������� ������������������ Number를����������� ������������������ 메모해둔다.����������� ������������������
API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.
다음으로,����������� ������������������ Google����������� ������������������ Cloud����������� ������������������ Messaging����������� ������������������ for����������� ������������������ Android����������� ������������������ API를����������� ������������������ 동작시켜야합니다.
API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.
좌측의����������� ������������������ 메뉴에서����������� ������������������ APIs&auth를����������� ������������������ 클릭합니다.
API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.
APIs����������� ������������������ 메뉴를����������� ������������������ 클릭한후에����������� ������������������ Browse����������� ������������������ APIs에����������� ������������������ Google����������� ������������������ Cloud����������� ������������������ Messaging����������� ������������������ for����������� ������������������ Android를����������� ������������������ 검색합니다
API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.
Google����������� ������������������ Cloud����������� ������������������ Messaging����������� ������������������ for����������� ������������������ Android의����������� ������������������ STATUS를����������� ������������������ ON으로����������� ������������������ 변경합니다.
API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.
ON����������� ������������������ 된것을����������� ������������������ 확인!
API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.
이제,����������� ������������������ 3rd-Party����������� ������������������ App����������� ������������������ Server에서����������� ������������������ 사용할����������� ������������������ Key를����������� ������������������ 획득해야����������� ������������������ 합니다.
API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.
Credentials����������� ������������������ 메뉴에����������� ������������������ 접속한후����������� ������������������ Create����������� ������������������ new����������� ������������������ Key를����������� ������������������ 클릭
API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.
Server����������� ������������������ Key를����������� ������������������ 클릭
API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.
Server����������� ������������������ IP����������� ������������������ Address를����������� ������������������ 입력합니다.����������� ������������������ ����������� ������������������
GCM을����������� ������������������ 테스트할����������� ������������������ 경우����������� ������������������ 0.0.0.0/0을����������� ������������������ 입력합니다.
API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.
API����������� ������������������ KEY����������� ������������������ 획득!����������� ������������������ 이것도����������� ������������������ 저장해����������� ������������������ 둡니다.
API����������� ������������������ 프로젝트를����������� ������������������ 생성한다. 에서����������� ������������������
우리는����������� ������������������ API����������� ������������������ 프로젝트를����������� ������������������ 생성한후����������� ������������������ Project����������� ������������������ Number를����������� ������������������ 획득,����������� ������������������
GCM����������� ������������������ API를����������� ������������������ 가동,����������� ������������������
Server����������� ������������������ API����������� ������������������ Key를����������� ������������������ 획득했습니다.
순서
1. Google����������� ������������������ Console에서����������� ������������������ API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.����������� ������������������
2. Client����������� ������������������ Application을����������� ������������������ 구현����������� ������������������
3. Application����������� ������������������ Server를����������� ������������������ 구현
GCM����������� ������������������ (����������� ������������������ Google����������� ������������������ Cloud����������� ������������������ Messaging����������� ������������������ )
3rd-Party����������� ������������������ Server가����������� ������������������ 생성한����������� ������������������ 메세지를����������� ������������������ ����������� ������������������
GCM����������� ������������������ Connection����������� ������������������ Servers로부터����������� ������������������ 전달받는����������� ������������������ Client����������� ������������������ App을����������� ������������������ 작성하겠습니다.
Client����������� ������������������ Application을����������� ������������������ 구현
먼저����������� ������������������ Google����������� ������������������ Play����������� ������������������ Services����������� ������������������ SDK를����������� ������������������ 셋팅하도록����������� ������������������ 합니다.����������� ������������������
Client����������� ������������������ Application을����������� ������������������ 구현
SDK����������� ������������������ 폴더����������� ������������������ 위치
<Android-SDK>/extras/google/google_play_services/libproject에����������� ������������������
google-play-services_lib가����������� ������������������ 존재하는지����������� ������������������ 확인합니다.
혹시����������� ������������������ 이����������� ������������������ 디렉토리가����������� ������������������ 없다면����������� ������������������ SDK����������� ������������������ Manager에서����������� ������������������ 다운로드����������� ������������������ 받도록합니다.
Client����������� ������������������ Application을����������� ������������������ 구현
Eclipse의����������� ������������������ File-Import����������� ������������������ 메뉴를����������� ������������������ 클릭.����������� ������������������ Existing����������� ������������������ Android����������� ������������������ Code����������� ������������������ into����������� ������������������ Workspace를����������� ������������������
클릭합니다.
Client����������� ������������������ Application을����������� ������������������ 구현
google-play-services_lib를����������� ������������������ 찾은����������� ������������������ 후����������� ������������������ Finish����������� ������������������ 클릭����������� ������������������
(현재����������� ������������������ workspace에����������� ������������������ copy하도록����������� ������������������ 합니다)
Client����������� ������������������ Application을����������� ������������������ 구현
프로젝트는����������� ������������������ 임포트����������� ������������������ 했으니����������� ������������������ 이제����������� ������������������ Nextgram����������� ������������������ 프로젝트가����������� ������������������ 참조할����������� ������������������ 수����������� ������������������ 있도록����������� ������������������ 해봅시다.
Client����������� ������������������ Application을����������� ������������������ 구현
Nextgram����������� ������������������ Project에����������� ������������������ 우클릭을해서����������� ������������������ Properties를����������� ������������������ 클릭
Client����������� ������������������ Application을����������� ������������������ 구현
좌측의����������� ������������������ Android메뉴를����������� ������������������ 클릭한����������� ������������������ 후����������� ������������������ Add..����������� ������������������ 클릭
Client����������� ������������������ Application을����������� ������������������ 구현
google-play-services_lib를����������� ������������������ 찾은����������� ������������������ 후����������� ������������������ OK����������� ������������������ 클릭!
Client����������� ������������������ Application을����������� ������������������ 구현
추가된것을����������� ������������������ 확인합니다.
Client����������� ������������������ Application을����������� ������������������ 구현
Android����������� ������������������ Studio����������� ������������������ 에서는����������� ������������������ 이전의����������� ������������������ 작업들을����������� ������������������ 하기위해����������� ������������������ dependencies에����������� ������������������ ����������� ������������������
complie����������� ������������������ ‘com.google.android.gms:play-services:5.+’����������� ������������������ 를����������� ������������������ 추가해����������� ������������������ 주시면����������� ������������������ 됩니다.
build.gradle
Client����������� ������������������ Application을����������� ������������������ 구현
프로젝트에����������� ������������������ 의존성을����������� ������������������ 추가해����������� ������������������ 줍니다.����������� ������������������ ����������� ������������������
application����������� ������������������ 태그����������� ������������������ 아래에����������� ������������������ 작성해����������� ������������������ 주시면����������� ������������������ 됩니다.
AndroidManifest.xml
방금작업을해두면����������� ������������������ GCM뿐만아니라����������� ������������������ 다른����������� ������������������ Google����������� ������������������ Play����������� ������������������ services����������� ������������������ APIs를����������� ������������������ 사용할수있습니다.
Client����������� ������������������ Application을����������� ������������������ 구현
Google����������� ������������������ SDK를����������� ������������������ 셋팅했으니����������� ������������������ 본격적으로����������� ������������������ Client����������� ������������������ Code를����������� ������������������ 작성해봅시다.
Client����������� ������������������ Application을����������� ������������������ 구현
필요한����������� ������������������ 권한을����������� ������������������ 추가합니다.
AndroidManifest.xml
Client����������� ������������������ Application을����������� ������������������ 구현
Application����������� ������������������ 태그����������� ������������������ 아래에����������� ������������������ GcmBroadcastReceiver를����������� ������������������ 등록합니다.����������� ������������������
AndroidManifest.xml
Client����������� ������������������ Application을����������� ������������������ 구현
권한을����������� ������������������ 설정했으니,����������� ������������������ ����������� ������������������ 현재����������� ������������������ 어플리케이션이����������� ������������������ Google����������� ������������������ Play����������� ������������������ Services����������� ������������������ API를����������� ������������������ ����������� ������������������
사용할����������� ������������������ 수����������� ������������������ 있는지����������� ������������������ 확인하겠습니다.
Client����������� ������������������ Application을����������� ������������������ 구현
checkGooglePlayServices라는����������� ������������������ 메서드를����������� ������������������ 작성합니다.����������� ������������������
이����������� ������������������ 메서드는����������� ������������������ play����������� ������������������ service의����������� ������������������ 지원����������� ������������������ 여부에����������� ������������������ 따라����������� ������������������ false,����������� ������������������ true값을����������� ������������������ 반환합니다.
HomeView.java
Client����������� ������������������ Application을����������� ������������������ 구현
조건문을����������� ������������������ 작성하여����������� ������������������ GooglePlayService를����������� ������������������ 사용할����������� ������������������ 수����������� ������������������ 있을때의����������� ������������������ 코드를����������� ������������������ 작성합니다.
HomeView.java
Client����������� ������������������ Application을����������� ������������������ 구현
이제����������� ������������������ GCM을����������� ������������������ 사용하기����������� ������������������ 위한����������� ������������������ 인증을����������� ������������������ 할것입니다.����������� ������������������
Client����������� ������������������ Application을����������� ������������������ 구현
필요한����������� ������������������ 변수들을����������� ������������������ 미리����������� ������������������ 설정해����������� ������������������ 둡니다.
HomeView.java
[Project����������� ������������������ Number]
Client����������� ������������������ Application을����������� ������������������ 구현
pref와����������� ������������������ context����������� ������������������ 변수에����������� ������������������ 인스턴스를����������� ������������������ 할당합니다.
HomeView.java
Client����������� ������������������ Application을����������� ������������������ 구현
gcm����������� ������������������ 객체에����������� ������������������ 인스턴스를����������� ������������������ 구한후����������� ������������������ Client를����������� ������������������ 위한����������� ������������������ RegistrationId를����������� ������������������ 가져옵니다.����������� ������������������
만약에����������� ������������������ 없다면����������� ������������������ GCM����������� ������������������ Connection����������� ������������������ Server에����������� ������������������ 요청해����������� ������������������ RegistrationId를����������� ������������������ 가져옵니다.
HomeView.java
Client����������� ������������������ Application을����������� ������������������ 구현
getRegistrationId()와����������� ������������������ registerInBackground()����������� ������������������ 를����������� ������������������ 구현해����������� ������������������ 봅시다.
HomeView.java
Client����������� ������������������ Application을����������� ������������������ 구현
getRegistrationId()는����������� ������������������ Sharef����������� ������������������ Preferences에����������� ������������������ 저장된����������� ������������������ ����������� ������������������
registration����������� ������������������ ID를����������� ������������������ 가져오는����������� ������������������ 메서드입니다.����������� ������������������ 없을경우����������� ������������������ “”을����������� ������������������ 반환합니다.
HomeView.java
Client����������� ������������������ Application을����������� ������������������ 구현
registerInBackground()는����������� ������������������ Google����������� ������������������ Connection����������� ������������������ Server로부터����������� ������������������ ����������� ������������������
registration����������� ������������������ ID를����������� ������������������ 획득하는����������� ������������������ 메서드입니다.����������� ������������������
AsyncTask를����������� ������������������ 활용해����������� ������������������ 구현하겠습니다.
HomeView.java
Client����������� ������������������ Application을����������� ������������������ 구현
GoogleCloudMessaging객체의����������� ������������������ register(SENDER_ID)����������� ������������������ 함수를����������� ������������������ 통해����������� ������������������ ����������� ������������������
값을����������� ������������������ 가져올����������� ������������������ 수����������� ������������������ 있습니다.����������� ������������������ ����������� ������������������
값을����������� ������������������ 가져오면����������� ������������������ storeRegistrationId()����������� ������������������ 메서드를����������� ������������������ 통해����������� ������������������ ID값을����������� ������������������ 저장하도록����������� ������������������ 합니다.
HomeView.java
Client����������� ������������������ Application을����������� ������������������ 구현
storeRegistrationId()를����������� ������������������ 구현해봅시다.
HomeView.java
Client����������� ������������������ Application을����������� ������������������ 구현
regid를����������� ������������������ 받아����������� ������������������ SharedPreferences����������� ������������������ 에����������� ������������������ 저장하는����������� ������������������ 단순한����������� ������������������ 메서드입니다.
HomeView.java
Client����������� ������������������ Application을����������� ������������������ 구현
Registration����������� ������������������ ID를����������� ������������������ 획득했으니����������� ������������������
어플리케이션이����������� ������������������ GCM을����������� ������������������ 활용하기����������� ������������������ 위한����������� ������������������ 준비작업은����������� ������������������ 완료했습니다.����������� ������������������
다음은����������� ������������������ Server에서����������� ������������������ 메세지가����������� ������������������ 전달되었을때����������� ������������������ 그것을����������� ������������������ 처리하는����������� ������������������ 로직을����������� ������������������ ����������� ������������������
만들도록����������� ������������������ 하겠습니다.
Client����������� ������������������ Application을����������� ������������������ 구현
GcmBroadcastReceiver����������� ������������������ 클래스를����������� ������������������ 작성하도록합니다.����������� ������������������
이����������� ������������������ 클래스는����������� ������������������ 메세지가����������� ������������������ 도착했을때����������� ������������������ 사용자의����������� ������������������ 어플리케이션을����������� ������������������ 깨우고����������� ������������������
GcmIntentService를����������� ������������������ 실행시키는����������� ������������������ 역할을����������� ������������������ 합니다.
GcmBroadcastReceiver.java
Client����������� ������������������ Application을����������� ������������������ 구현
GcmBroadcastReceiver.java
GcmIntentService를����������� ������������������ 작성하도록����������� ������������������ 하겠습니다.
Client����������� ������������������ Application을����������� ������������������ 구현
GcmIntentService����������� ������������������ 클래스를����������� ������������������ 생성한����������� ������������������ 후����������� ������������������
필요한����������� ������������������ 변수를����������� ������������������ 설정하고����������� ������������������ 생성자를����������� ������������������ 작성합니다.
GcmIntentService.java
Client����������� ������������������ Application을����������� ������������������ 구현
onHandleIntent()를����������� ������������������ Override합니다.����������� ������������������
extras����������� ������������������ 정보에서����������� ������������������ messageType을����������� ������������������ 추출합니다.
GcmIntentService.java
Client����������� ������������������ Application을����������� ������������������ 구현
TYPE이����������� ������������������ SEND_ERROR,����������� ������������������ DELETED,����������� ������������������ MESSAGE����������� ������������������ 일때����������� ������������������ 처리하도록����������� ������������������ 로직을����������� ������������������ 분리합니다.
GcmIntentService.java
Client����������� ������������������ Application을����������� ������������������ 구현
MESSAGE����������� ������������������ 타입일때����������� ������������������ 게시글����������� ������������������ 데이터를����������� ������������������ 갱신하고����������� ������������������
사용자의����������� ������������������ 어플리케이션에����������� ������������������ Notification을����������� ������������������ 보냅니다.
GcmIntentService.java
Client����������� ������������������ Application을����������� ������������������ 구현
GcmIntentService.java
sendNotification����������� ������������������ 메서드를����������� ������������������ 작성하도록����������� ������������������ 하겠습니다.
Client����������� ������������������ Application을����������� ������������������ 구현
GcmIntentService.java
NotificationManager����������� ������������������ 객체를����������� ������������������ 초기화합니다.
Client����������� ������������������ Application을����������� ������������������ 구현
GcmIntentService.java
PendingIntent를����������� ������������������ 작성해����������� ������������������ “알림”을����������� ������������������ 클릭했을때����������� ������������������ HomeView.class가����������� ������������������ 열리도록����������� ������������������ 합니다.
Client����������� ������������������ Application을����������� ������������������ 구현
GcmIntentService.java
NotificationCompat.Builder����������� ������������������ 객체를����������� ������������������ 활용해����������� ������������������ 알림에����������� ������������������ 표현될����������� ������������������
Icon,����������� ������������������ Title,����������� ������������������ Style,����������� ������������������ Text,����������� ������������������ ContextText를����������� ������������������ 구성합니다.
Client����������� ������������������ Application을����������� ������������������ 구현
GcmIntentService.java
마지막으로����������� ������������������ PendingIntent를����������� ������������������ 설정하고����������� ������������������ ����������� ������������������
NotificationManager.notify()를����������� ������������������ 통해����������� ������������������ Notification을����������� ������������������ 보냅니다.
Client����������� ������������������ Application을����������� ������������������ 구현
이로써,����������� ������������������ Client����������� ������������������ Application을����������� ������������������ 모두����������� ������������������ 구현했습니다.����������� ������������������
Client는����������� ������������������ Google����������� ������������������ Play����������� ������������������ Services����������� ������������������ SDK를����������� ������������������ 셋팅했고����������� ������������������
Client가����������� ������������������ 사용가능한����������� ������������������ 상태인지����������� ������������������ 확인할����������� ������������������ 수����������� ������������������ 있으며,����������� ������������������ ����������� ������������������
GCM과����������� ������������������ 관련한����������� ������������������ 인증을����������� ������������������ 했습니다.����������� ������������������
또한,����������� ������������������ 메세지가����������� ������������������ 도착했을때����������� ������������������ 게시글을����������� ������������������ 재갱신하고����������� ������������������ ����������� ������������������
사용자에게����������� ������������������ 알림(Notification)을����������� ������������������ 표시할����������� ������������������ 수����������� ������������������ 있습니다.����������� ������������������
다음으로����������� ������������������ 메세지를����������� ������������������ 보내는����������� ������������������ 3rd����������� ������������������ Party����������� ������������������ Server를����������� ������������������ 구현해����������� ������������������ 보겠습니다.
순서
1. Google����������� ������������������ Console에서����������� ������������������ API����������� ������������������ 프로젝트를����������� ������������������ 생성한다.����������� ������������������
2. Client����������� ������������������ Application을����������� ������������������ 구현����������� ������������������
3. Application����������� ������������������ Server를����������� ������������������ 구현
GCM����������� ������������������ (����������� ������������������ Google����������� ������������������ Cloud����������� ������������������ Messaging����������� ������������������ )
Client����������� ������������������ App에게����������� ������������������ 전달할����������� ������������������ 메세지를����������� ������������������
GCM����������� ������������������ Connection����������� ������������������ Server에게����������� ������������������ 전달하는����������� ������������������
3rd-Party����������� ������������������ Server를����������� ������������������ 구현해����������� ������������������ 보겠습니다.
Application����������� ������������������ Server를����������� ������������������ 구현
Server는����������� ������������������ 파이썬을����������� ������������������ 통해����������� ������������������ 간단히����������� ������������������ 구현하겠습니다.����������� ������������������
python����������� ������������������ 2.x����������� ������������������ 버전이����������� ������������������ 설치되어있는����������� ������������������ 환경입니다.
Application����������� ������������������ Server를����������� ������������������ 구현
https://github.com/geeknam/python-gcm
터미널에서����������� ������������������ GCM에����������� ������������������ 필요한����������� ������������������ 라이브러리를����������� ������������������ 설치하는����������� ������������������ 명령을����������� ������������������ 입력합니다.����������� ������������������ ����������� ������������������
pip����������� ������������������ install����������� ������������������ python-gcm
Application����������� ������������������ Server를����������� ������������������ 구현
Python을����������� ������������������ 실행시키고����������� ������������������ from����������� ������������������ gcm����������� ������������������ import����������� ������������������ GCM����������� ������������������ 이����������� ������������������
정상적으로����������� ������������������ 작동하는지����������� ������������������ 확인합니다.
Application����������� ������������������ Server를����������� ������������������ 구현
API_KEY����������� ������������������ =����������� ������������������ ‘Project����������� ������������������ Number’
Application����������� ������������������ Server를����������� ������������������ 구현
json����������� ������������������ 형태로����������� ������������������ data를����������� ������������������ 구성합니다.
Application����������� ������������������ Server를����������� ������������������ 구현
gcm����������� ������������������ =����������� ������������������ GCM(API_KEY)
Application����������� ������������������ Server를����������� ������������������ 구현
reg_id����������� ������������������ =����������� ������������������ ‘Application에서����������� ������������������ 얻은����������� ������������������ Registration����������� ������������������ ID’
실제로는����������� ������������������ storeRegistrationId를����������� ������������������ 할때����������� ������������������ 3rd����������� ������������������ Party����������� ������������������ Server로����������� ������������������ Registration����������� ������������������ ID를����������� ������������������ 전송합니다
Application����������� ������������������ Server를����������� ������������������ 구현
gcm.plaintext_request(registration_id=reg_id,����������� ������������������ data=data)
Application����������� ������������������ Server를����������� ������������������ 구현
위에����������� ������������������ 알람이����������� ������������������ 뜨는����������� ������������������ 것을����������� ������������������ 확인할����������� ������������������ 수����������� ������������������ 있습니다.
실제����������� ������������������ 디바이스
Application����������� ������������������ Server를����������� ������������������ 구현
영상
Geny����������� ������������������ Motion
section����������� ������������������ 6
GCM을����������� ������������������ 활용하자게시글����������� ������������������ 갱신을����������� ������������������ 동기화하기
마무리
ServerAndroid����������� ������������������ Application
버튼클릭
JSON����������� ������������������ Data
Proxy().getJSON()
Refresh����������� ������������������ Button을����������� ������������������ 클릭해서����������� ������������������ 게시글을����������� ������������������ 갱신하는것은
최신글을����������� ������������������ 유지할����������� ������������������ 수����������� ������������������ 없습니다.
혹은,����������� ������������������ Service를����������� ������������������ 통해����������� ������������������ 주기적으로����������� ������������������ 갱신하는것은
Server
JSON����������� ������������������ Data
Proxy().getJSON()Service
항상����������� ������������������ 최신글이라고����������� ������������������ 보장할����������� ������������������ 수����������� ������������������ 없습니다.
하지만����������� ������������������ GCM을����������� ������������������ 활용한다면?
GCM을����������� ������������������ 사용한다면
GCM����������� ������������������ Server게시글����������� ������������������ 작성
게시글이����������� ������������������ 작성됬네?
게시글이����������� ������������������ 작성����������� ������������������ 되었을때����������� ������������������ GCM����������� ������������������ Server에게����������� ������������������ 알려*GCM����������� ������������������ Server는����������� ������������������ GCM����������� ������������������ Connection����������� ������������������ Server가����������� ������������������ 아닌����������� ������������������ GCM을����������� ������������������ 구현한����������� ������������������ 3rd����������� ������������������ Party����������� ������������������ Server입니다.
GCM을����������� ������������������ 사용한다면
Server
JSON����������� ������������������ Data
Proxy().getJSON()
GCM����������� ������������������ Server게시글����������� ������������������ 작성
등록된����������� ������������������ 기계들아����������� ������������������ ����������� ������������������ 데이터를����������� ������������������ 요청해!
각����������� ������������������ 디바이스들에게����������� ������������������ ����������� ������������������ 게시글����������� ������������������ 재갱신을����������� ������������������ 요청할����������� ������������������ 수����������� ������������������ 있습니다.
Server
JSON����������� ������������������ Data
Proxy().getJSON()
GCM����������� ������������������ Server게시글����������� ������������������ 작성
등록된����������� ������������������ 기계들아����������� ������������������ ����������� ������������������ 데이터를����������� ������������������ 요청해!
게시글이����������� ������������������ 작성될때����������� ������������������ 다른����������� ������������������ 디바이스에게����������� ������������������ 재갱신을����������� ������������������ 요청하므로����������� ������������������ ����������� ������������������
Refresh,����������� ������������������ Service를����������� ������������������ 활용한����������� ������������������ 방법에����������� ������������������ 비해����������� ������������������ 가장����������� ������������������ 최신����������� ������������������ 데이터임을����������� ������������������ 보장할����������� ������������������ 수����������� ������������������ 있습니다.
GCM을����������� ������������������ 사용한다면
추가사항
GCM����������� ������������������ Server게시글����������� ������������������ 작성
게시글이����������� ������������������ 작성됬네?
이����������� ������������������ 부분을����������� ������������������ 실제로����������� ������������������ 작성하진����������� ������������������ 않았지만,����������� ������������������ 게시글을����������� ������������������ 작성했을때����������� ������������������ ����������� ������������������
gcm.plaintext_request()를����������� ������������������ 사용하는����������� ������������������ 것과����������� ������������������ 같은����������� ������������������ 로직을����������� ������������������ 추가해����������� ������������������
준다면����������� ������������������ 위의����������� ������������������ 부분을����������� ������������������ 만족할����������� ������������������ 수����������� ������������������ 있습니다.
GCM����������� ������������������ Server게시글����������� ������������������ 작성
등록된����������� ������������������ 기계들아����������� ������������������ ����������� ������������������ 데이터를����������� ������������������ 요청해!
어떤����������� ������������������ 디바이스에게����������� ������������������ 전달해야하는지는����������� ������������������ Registration����������� ������������������ ID를����������� ������������������ 통해����������� ������������������ 인식할����������� ������������������ 수����������� ������������������ 있습니다.����������� ������������������ ����������� ������������������
이번����������� ������������������ 예제에서는����������� ������������������ 안드로이드����������� ������������������ 로그에서����������� ������������������ 직접����������� ������������������ 추출해서����������� ������������������ 사용했지만����������� ������������������
실제����������� ������������������ GCM을����������� ������������������ 서비스에����������� ������������������ 적용하기����������� ������������������ 위해선����������� ������������������ 클라이언트에서����������� ������������������ Reg����������� ������������������ ID를����������� ������������������ 획득할때����������� ������������������ ����������� ������������������
GCM����������� ������������������ Server로����������� ������������������ ID를����������� ������������������ 전송하는����������� ������������������ 로직을����������� ������������������ 추가해야����������� ������������������ 할����������� ������������������ 것입니다.
*GCM����������� ������������������ Server는����������� ������������������ GCM����������� ������������������ Connection����������� ������������������ Server가����������� ������������������ 아닌����������� ������������������ GCM을����������� ������������������ 구현한����������� ������������������ 3rd����������� ������������������ Party����������� ������������������ Server입니다.
추가사항
감사합니다.