C2DM - Cloud to device message |
C2DM(Cloud to device message)을 사용하면, 안드로이드에서도 서비스 없이 푸쉬알림기능을 이용할 수 있습니다.
C2DM의 사용 순서 |
C2DM을 사용하기 위해서는 몇가지 단계가 필요합니다.
1. 어플리케이션 등록 및 메일 확인
2. Auth 키 획득하기
3. 디바이스 인증키 획득하기
4. Manifest.xml 수정
Android Push notification - C2DM에 대한 내용중 일부입니다.
- C2DM 은 아래와 같이 작동합니다.
- C2DM 을 사용하기 위해 디바이스 상의 어플리케이션은 우선 구글에 등록해 Registration ID 를 발급 받아야 합니다. 해당 ID 를 자신의 서버에 전달해야 합니다.
- 만일 자신의 서버가 푸시하고 싶은 메세지가 있을 경우, 메세지를 HTTP 를 통해 구글의 C2DM 서버에 전달합니다.
- C2DM 서버는 메세지를 디바이스에 라우팅 하고, 디바이스는 브로드캐스트 인텐트를 어플리케이션에 전달 할 것 입니다.
- 타켓 어플리케이션은 브로드 캐스트 인텐트를 통해 깨어나고 메세지를 처리합니다.
- 어플리케이션은 사용자가 더이상 푸시 서비스를 받고싶지 않을 경우 등록을 취소할 수 있습니다.
C2DM을 사용해보고... |
C2DM을 사용하면 2.2(프로요) 이상의 안드로이드 OS를 사용하는 안드로이드 Device에서,
BroadcastReceiver를 사용하여 Service의 구현없이 푸쉬알림이 가능합니다.
(2.1이하 OS에서는 안된다. 아쉽게도..)
하지만, C2DM을 사용하는 어플리케이션이 모두 동일한 액션을 사용한다고 생각되기 때문에,
여러 어플리케이션중에서 자신의 어플리케이션의 메시지만을 식별해 낼 수 있는 방법이 필요할것입니다.
- 동일한 액션 : com.google.android.c2dm.intent.RECEIVE
C2DM이 구글톡과 연동되어 메시지를 전달한다는 얘기가 있었습니다.
- 넥서스원 2.2에서 확인해보니 구글톡이 로그아웃 되어있는것을 확인하고 푸쉬를 하였지만 제대로 동작하였습니다.
- 다른 기기에서는 미확인, 확인요
데이터를 전달하는 방식이 intent에 bundle로 넘기는 방식을 취하기 때문에 키값을 적절히 지정해 사용한다면,
자신의 어플리케이션을 식별해 내는 것에는 문제가 없다고 생각됩니다.
또, 디바이스 인증 키(디바이스 식별 ID)는 각 디바이스에서만 알 수 있기 때문에,
어플리케이션에서 푸쉬알림을 받겠다는 명령을 실행했을 때, 이 식별 ID를 서버단으로 넘겨주는 부분이 있어야 합니다.
서버에서 이 키들을 모아서 DB에 저장해 놓고 사용한다면 푸쉬알림에 문제는 없을듯합니다.