Profile

Cover photo
Vykintas Valkaitis
Attends Vilnius University
Lives in Vilnius
128 followers|18,529 views
AboutPostsPhotosVideos

Stream

Vykintas Valkaitis

Shared publicly  - 
 
 
The Google+ team will be sharing a few updates. Bookmark this event page to watch the broadcast live.
A Morning with Google+
Tue, October 29, 2013, 12:30 PM

1
Add a comment...
Have him in circles
128 people
Tadas Jankauskas's profile photo
Tadas Valaitis's profile photo
Marijus Plančiūnas's profile photo
Martynas Gedminas's profile photo

Vykintas Valkaitis

Shared publicly  - 
 
 
Testing Your Android GCM Broadcast Receiver without GCM Messages

So depending on your environment it's kind of a pain-in-the-butt to test Google Cloud Messaging on an actual device.

Wouldn't it be nice if you could just test the code locally that would receive those magical GCM messages?  *You can*.

adb shell is a magical place - a place where you can construct intents and fire them off into the system.

Step 1:  Open your AndroidManifest.xml, locate your GCM Broadcast Receiver (let's say ours is net.npike.android.gcm.GCMBroadcastReceiver and our package name is 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:  Temporarily remove the following attribute from its declaration:

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

Step 3:  Open a terminal / command prompt where you can access ADB.

Step 4:  Enter the shell.

adb shell

Step 5:  Paste the following (replacing the appropriate values) and hit enter:

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

If you did everything correctly you should get some output like:

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

... and your GCM BroadcastReceiver should fire up and build a notification (or whatever you have your GCM BroadcastReceiver doing.)

Step 6: Finish your testing and undo Step #2.

#androiddev 
2
Add a comment...
 
Android animation tutorial, skip first few pages for advanced users.
http://cogitolearning.co.uk/?p=877
1
Add a comment...
People
Have him in circles
128 people
Tadas Jankauskas's profile photo
Tadas Valaitis's profile photo
Marijus Plančiūnas's profile photo
Martynas Gedminas's profile photo
Education
  • Vilnius University
    present
Basic Information
Gender
Male
Other names
Oora
Work
Occupation
Android Developer
Skills
Android, Java, PHP, MySQL, HTML, JavaScript
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
Vilnius
Previously
Vilnius
Links