adb shell을 이용하여 테스트 하기.

 

여러분들께 도움이 될까 해서 퍼왔습니다.

 

Step 1:  AndroidManifest.xml에서 GCM Broadcast Receiver를 찾는다. (예를 들어, net.npike.android.gcm.GCMBroadcastReceiver, 패키지 이름은 net.npike.android)

<receiver
   android:name="net.npike.android.gcm.GCMBroadcastReceiver"
   android:permission="com.google.android.c2dm.permission.SEND" >
   <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE"/> 
       <action android:name="com.google.android.c2dm.intent.REGISTRATION"/> 

       <category android:name="net.npike.android"/> 
   </intent-filter>
</receiver>

Step 2:  테스트 동안에는 다음을 제거해 준다:

android:permission="com.google.android.c2dm.permission.SEND"

Step 3:  명령창을 열어 ADB를 열고

Step 4: 쉘로 들어간다.
adb shell

Step 5:  다음 내용을 입력하고(필요한 부분을 수정한 후):

am broadcast -a com.google.android.c2dm.intent.RECEIVE -n net.npike.android/net.npike.android.gcm.GCMBroadcastReceiver --es "data.alert" "foo"

모든 것이 순조로웠다면 다음과 같은 메시지가 나온다:

Broadcasting: Intent { act=com.google.android.c2dm.intent.RECEIVE cmp=net.npike.android/gcm.GCMBroadcastReceiver (has extras) }
Broadcast completed: result=-1

... 그리고 나면 GCM BroadcastReceiver가 notification을 올리던지 (아니면 GCM BroadcastReceiver가 해야할 다른 작업.)

Step 6: 테스트가 끝났으면 Step #2 에서 제거 했던 부분을 복구 한다.

 

출처: https://plus.google.com/108612553581259107752/posts/ERVnjUAjsbZ