Send gcm messages to different application activty - php

Im new to android application development and im developing an app that uses GCM messaging. This app registers to my php webserver. I follow some tutorials about gcm but im really confused. This application has 3 activities:
NewsActivity.java - displays new information and special topics.
MemoActivity.java- displays memo.
3 EventsActivity.java - displays important information about special events.
My problem:
How can the server send gcm messages to specific android activity. For example i want to send gcm message to NewsActivity.java ONLY which means that the message will only be displayed in that specific activity?
How can the app determine if that message can only be displayed on specific activity?
I don't know where to start. Any information you can provide me would be greatly appreciated. Thanks.

GCM Server sends the message to the app. It is received in the Broadcast receiver. There you can find which of your activity is visible by setting a flag to some value in every activity or by other means. Or follow this dealing with received gcm push notification in different activities?

Related

sending fcm notification messages to multiple android devices by registration_ids parameter

I want to send notifications to multiple android devices(where same app is installed) by fcm from php server side by calling this url -
https://fcm.googleapis.com/fcm/send
I checked sending messages to device groups but my requirement is such that there will not be definite devices to which i will send messages because i am going to do it in a hourly cron job, and each time a cron job runs it will send notification messages to different different devices according to requirements. or can it be done in another way?
But i am thinking to use "registration_ids" parameter instead of "to" parameter, details of these fields here in the Downstream HTTP messages section. In this registration_ids field i will put all required device registration tokens in array. Now my question is after receiving message in android device can the message be parsed in the android app sdk codes?. i am in a bit of doubt as in this documentation there are no mentions of registration_ids parameter when sending messages to multiple android devices. Please assure me. And furthermore, will the message be sent when android app is in background?!. Please don't write one line, provide some examples if possible.
In the documentation for building requests to send to multiple devices you will find an example of passing multiple FCM tokens in a single call to the FCM API in the tokens parameter (in Node.js) or by using a HTTP batch request with multiple subrequests (in the REST API).
If you're having a hard time making this work, posting a question that shows what you tried increases the chances that someone can help making it work.
Yes, the message is sent regardless of whether the app is in the foreground, or in background. Whether the notification is actually shown depends on many more factors, many of which are outside of your control (such as the Android version, device maker/OEM, and the user settings).

Notification from web site (HTML Table) to Android application in real time without using GCM

I am developing an android application and website as well, in this i want to send notification in real time from Admin panel to specific android application user. The main problem is that using GCM (Firebase CM) there is a token generated from android application and stored it in the database, using this token we can send message from admin panel to android application user. Is there is way that we can receive/send notification without using "token" because e.g. "Teacher send notification to students from Website to Student android application teacher just select the registration name or section and just type what he want to send and click send button. Notification should receive to that particular user.
How we can do it? Can any body help me?
Use Android service and call API as a background and check new entry in notification table, if found new entry display it as a notification
Without Device Token you can not send any notification from Admin Panel to Android App. To send notification FCM needs a unique ID that is Device Token.
To resolve your query:
You can use Alarm Manager or a Background Service that will call your API to check have any new message of teacher in your DB, if have any new message then generate a notification with that message.
Only Background Service is not a complete solution, it will only call your check new message API.
Your Alarm Manager that will trigger at any given time duration e.g. 30 sec and call your Background service.
That can help you without token.

InvalidRegistration both on C2DM & GCM

I'm trying to send Push Notifications via C2DM / GCM to an Android Application via PHP.
No matter which i use, i keep getting the following :
For GCM :
{"multicast_id":7672049265453358197,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}
For C2DM : Error=InvalidRegistration
After reading allot about this issue all day I'm still clueless as to why this is an InvalidRegistration as if i take the registatoin_id and use it to send a test push message via Urban Airship it works.
Notice that this is not an auth issue as i get a [http_code] => 200 back from google and not 401.
If i send an empty registatoin_id or even omit just one char from it the error message changes to "MissingRegistration".
Any help would be appreciated.
If you copied the apid from UrbanAirship then that's the problem:
http://docs.urbanairship.com/reference/glossary.html#term-apid
Airship Push Identifier
APID
APIDs identify devices with transient registration IDs, such as Windows devices.
These identifiers are version 4 UUIDs, and are 36 characters long, including dashes.
You need to get the device information from http://docs.urbanairship.com/api/ua.html#get--api-apids-(APID) in the "gcm_registration_id" property. That's the registration id needed.
It seems you need to then keep track of that registration id as it is transient as suggested by UrbanAirship. But that's another topic.

Apple Pushnotification Issue

I am new for apple push notification. I am currently working on ios app with chat funcationality. For this app, web-services are built in PHP.
There is a functionality, when user send a chat message to another user that time we send a push notification through PHP that web-service to message receiver user.
Notification working fine that I have checked.
Now issue is, sometimes push notification works fine but sometime its not.
So I want to know when ios push notification fails to send.
I have put write to log and log shows notification sent successfully.
Thanks in advance :)
You can use the Feedback service to get information about failed push notifications via APN:
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html#//apple_ref/doc/uid/TP40008194-CH101-SW3
Looks like the link doesn't anchor to the section - so you will need to search for the entry
:( sry.
Hope that helps

Send Push notification to specific Users

I am trying to develop an android app that verifies a transaction initiated from a browser on a PC. I want the server application to push a notification of a new transaction to the app so the user can confirm to complete the transaction. The tricky bit is the transaction is specific to a particular person (I'm using this as an alternative to sending an SMS for example). Can anyone help on how to go about this? Is it possible to do this with C2DM or GCM?
Using Android GCM is advisable. The complete reference to GCM is available at
http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/
Step by step GCM development is given in there. It is really very helpful. Hope this is helpful to you.
The critical thing you need to keep in mind before making a decision is that when you are using GCM, you need to keep a track of the users by keeping their GCM_ID in your database. You can add a gcm_id column to your users table for this and whenever the user opens your app, the gcm_id should be updated in your database. The gcm_id of the user's phone can change, from the official docs:
Note that Google may periodically refresh the registration ID, so you should design your Android application with the understanding that the com.google.android.c2dm.intent.REGISTRATION intent may be called multiple times
GCM push notifications wont be able to reach your users mobile phone all the time,especially if his phone is not connected to internet or switched off.You are using this for transactions etc, so I assume that the notifications must not fail. You should keep a check in your web application to send an SMS or notify the user that this has failed. You should get a response from GCM to your server through which you can identify a failed case.

Categories