[Aerogear-users] Trouble sending Android Push Notifications

Rob Willett rob.aerogear at robertwillett.com
Thu Nov 26 05:24:53 EST 2015


Hi,

We’ve got iOS notifications working well and so we thought we’d push 
our luck and get Android notifications up and running. We’ve had them 
working before with another plugin so it can’t be that difficult….

We’ve followed the guide from here

https://aerogear.org/docs/unifiedpush/aerogear-push-android/guides/#troubleshooting

The Google web interface has changed but its still pretty much the same.

1. We’ve got and logged the Project Number (which is the Sender Id).

2. We’ve created a new server API key (is this the same as the GCM 
Messaging key?)

This appears to be all thats needed. We have an very old version of our 
app sitting in development in the Google Play Store but its never been 
released as we focussed on the iOS version. That used to linked to the 
GCM information but we have unlinked that now.

3. We have created a new variant on the UPS for Android. We create a 
name, description and where it asks for the Google Cloud Messaging Key 
we enter the Server API key we created in point 2. This is a bit we are 
unclear about, is the google Cloud Messaging Key the same as the Server 
API key we generated in Google Play services console? One of the things 
we noticed is that the example Google Cloud Messaging Key in the UPS 
dialogue box starts with a different few header bytes e.g. 5a44 whereas 
all the Server ApI keys start Alza. We are not experts on cryptography 
but we thought that *might* indicate a different type of key. It also 
might be nothing at all and Google has simply updated something.

4. We add in the Project number.

5. This creates the Android variant in the UPS dashboard. If we click on 
the variant we can see the expanded information showing the Server URL, 
the Variant ID and the Variant Secret.

6. This seems to work much the same as the iOS variant.

7. We then update our Cordova app and update the pushConfig field.

```
                 var aeroGearPushConfig = {
                     pushServerURL: 
"https://push-jambuster.rhcloud.com/ag-push/", // Checked that this 
matches the Android variant.
                     ios: {
                         variantID: “XXXXX-TTTc-OOOO-RRRR-BBBHBHBH”, 
// Obscured
                         variantSecret: 
“JKJKJ-HHHH-PPOPIO-sdsds-1231232” // Obscured
                     } ,
                     android: {
                         senderID: “XXXXXX” , // Changed to protect 
the innocent but checked that the senderID is the same as the Google 
Project Id
                         variantID: “345345-345345-45345-xxxx-zzzzz” 
, // Changed but checked to make sure this is the Android VariantId
                         variantSecret: 
"9b762d92-a7f0-4e8b-b6e4-adde4950c7e6" // Changed but checked to make 
sure this is the Android VariantSecret
                     } ,
                     sendMetricInfo: true,
                     alias: UUID // This is a unique string
                 };
```

We compile and run it on a real device, a Nexus 5. We create a unique 
alias to be sent to be sent as the alias. This is the UUID field

8. When we run the code and inspect the output in Chrome, the aeroGear 
Success Handler is called which we hope means success.

9. When we inspect the variant in the UPS dashboard, we can see that the 
a device with the right alias is created. The alias matches the alias we 
sent.

10. This all looks good. We have three real (i.e. non simulator) test 
devices in our UPS dashboard, two iOS devices and one Android device.

11. We click on the Send Push icon in the UPS dashboard to create some 
sample notifications. We send a simple test message to all variants. The 
two iPhones each get the test message and the Android phone doesn’t.

12. We click on the Dashboard icon in the UPS console, and then recent 
activity. We can see that the UPS server thinks it has sent the test 
message to the iOS and the Android variants. with no issues. We get 
alerts for the iOS pop up but nothing for the Android version.

```
Notification	Receivers	Status	Timestamp
  {"ipAddress”:”XX.YY.ZZ.216","clientIdentifier":"A...	3 
installations	Succeeded	26 Nov, 10:09:04, 2015
Request IP:	XX.YY.ZZ.216	Details
Message:	test11
Variants:	
Android Jambuster	Succeeded	1 installations
Jambuster Development	Succeeded	2 installations
```

13. The main UPS console doesn’t report any errors and it states that 
3 installations are registered. We’ve sent 657 notifications since 
yesterday trying to see what the problem is. We though that using the 
UPS console removed any issues with us creating the test message. Since 
we can see the iOS devices getting the test message, we are struggling 
to understand why the Android wouldn’t.

14. We’ve tried with the Android app running in the foreground, 
background and not running at all to see if that makes any difference 
and still nothing comes through.

15. If we look at the log files using roc tail, we can see that the 
messages get passed on. No error messages are reported.

```
2015/11/26 05:20:38,528 INFO  [PushNotificationSenderEndpoint] (EJB 
default - 7) Processing send request with '[alert=Test12, 
criteria=[aliases=null, deviceTypes=null, categories=null, 
variants=null], time-to-live=-1]' payload
2015/11/26 05:20:38,530 INFO  [PushNotificationSenderEndpoint] 
(http-/127.3.204.1:8080-5) Message submitted to PushNetworks for further 
processing
2015/11/26 05:20:38,533 INFO  [GCMPushNotificationSender] (EJB default - 
7) Sending payload for [1] devices to GCM
2015/11/26 05:20:38,590 INFO  [GCMPushNotificationSender] (EJB default - 
7) Message to GCM has been submitted
2015/11/26 05:20:38,726 INFO  [APNsPushNotificationSender] (EJB default 
- 7) Message to APNs has been submitted
```

Whilst it is impossible for people to debug our code and we don’t want 
people to, we’re struggling to understand what we could have done 
wrong. The fact we are getting iOS messages through whilst Android 
messages are failing (but with no error) is perplexing. We have rebuild 
the Server API kets in Google, deleted and rebuilt the Android variant 
but we’ve now hit a brick wall. We have a nagging feeling it is 
something to do with the GCM Server API key but everything reports OK.

Any and all suggestions gratefully received.

Thanks

Rob
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/aerogear-users/attachments/20151126/5c9fa782/attachment-0001.html 


More information about the Aerogear-users mailing list