IDE : android studio
샘플 코드 주소 : git clone https://github.com/googlesamples/google-services.git
사용 코드 : google-services/android/gcm
프로젝트 import : 외부 프로젝트 import 로 실행
과정 참고 : https://developers.google.com/cloud-messaging/android/start
위 싸이트의 설명에 기반한 샘플코드
https://developers.google.com/cloud-messaging/android/start 에서 설정 파일 받기
위에서 다운받은 google-services.json 파일을 내 프로젝트의 app/ 폴더로 옮긴다.
위에 적힌 Server API key 값을
GcmSender.java 31 째 줄에 있는 API_KEY에 기입한다.
PUSH 테스트
환경변수에 JAVA_HOME 설정 ( 내컴퓨터 ->속성 -> 설정변경 -> 고급 _> 환경변수)
각자 Jdk가 깔려있는 폴더를 적어두자(java.exe, javaw.exe 같은 파일이 있는 폴더)
위 설정을 하지 않으면 샘플 push 프로그램이 동작하지 않는다.
브로드캐스트 push
1. cmd.exe 를 실행
2. 소스가 깔려있는 곳으로 이동
$ cd {소스폴더경로}\gcm
$ gradlew.bat run -Pargs="푸쉬 할 메시지"
위와 같이 하면 내 어플리케이션이 설치된 모든 앱들에 "What!!!! the"란 문구의 노티피케이션이 뜬다.
유니캐스트 push
유니캐스트 push를 하려면 내 폰이 발급받은 registration id를 알아야 한다.
RegistrationIntentService 클래스에서 57 line에
Log.i(TAG, "GCM Registration Token: " + token);
이 있다. 이값이 내폰의 레지스트 아이디 값인데 logcat에서 "RegIntentService"로 필터를 해서 키값을 기억하고 있자.
$ gradlew.bat run -Pargs="푸쉬 할 메시지, {레지스트 아이디}"
를 실행하면 특정 폰에만 push가 가게 된다.
위의 registration id를 자신의 서버에 저장해두어 관리해야 나중에 push를 자유롭게 할 수 있겠다.
GcmSender
push 형태를 보면
https://android.googleapis.com/gcm/send 주소에
request 에 서버키를 설정한후
{message:{내매세지}, to:{특정 폰의 레지스트 아이디}} 형태의 json Data를 write 하는 것을 볼 수 있다.
'언어&플랫폼 > Android' 카테고리의 다른 글
webview javascript 함수 실행 (0) | 2015.10.15 |
---|---|
[android] 롤리팝 - was loaded over HTTPS, but is submitting data to an insecure location at (0) | 2015.06.29 |
android studio 단축키 (0) | 2015.06.12 |
[android] 웹뷰에서 파일경로 얻기(WebviewInterface) (0) | 2015.06.12 |