GCM을 어떤 버전으로 구현했는지는 모르겠으나 Google Service 라이브러리를 참조하여 구현한 경우는 아래 튜토리얼대로 구현하면 되고
https://developer.android.com/google/gcm/client.html
예전 방식 gcm.jar 를 libs 폴더에 넣어서 구현하셨다면 따로 구현해줄 필요는 없습니다.
(왜냐하면 아래 작성된 소스가 이미 gcm.jar에 포함되어 있기 때문이죠)
위 링크에 들어가서 보면 GCMBroadcastReceiver는 다음과 같이 작성 되어 있습니다.
Receiver가 하는 일은 간단합니다. GCM 서버로부터 푸쉬 메시지를 받았을 때 해당 앱의 IntentService에서 메시지처리를 할 수 있도록 service를 실행시키고 개발자가 작성한 코드가 정상적으로 동작을 마칠때까지 CPU를 깨워주는 일입니다.
(그래야 단말이 Deep Sleep 모드에 들어가도 푸쉬 메시지를 받았을 때 정상동작 할 수 있거든요)
public class GcmBroadcastReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Explicitly specify that GcmIntentService will handle the intent.
ComponentName comp = new ComponentName(context.getPackageName(),
GcmIntentService.class.getName());
// Start the service, keeping the device awake while it is launching.
startWakefulService(context, (intent.setComponent(comp)));
setResultCode(Activity.RESULT_OK);
}
}