Currently, I have an Android app and a Web Service written in C# using Visual Studio. Web service is published to an IIS. Android app makes calls to the web service to retrieve data from a MS SQL Server DB.
Furthermore, I have a Windows Service that responds to certain changes in the data of MS SQL Server DB. Currently, the Windows Service is capable to firing off an email when data in certain tables in MS SQL server DB is updated.
What I am interested in achieving now is to use Google Cloud Messaging to implement notifications in the Android app. So for example, I would like for the Windows Service to be able to fire off a message to GCM Connection Servers and therefore talk to the Android app.
As you can see all of my back-end is Microsoft technologies. I was wondering if anybody has experience connecting the different stacks that I am using. Or if not, if anybody has a solid workable idea as how I can achieve what I want o achieve with the least amount of change in the technologies I am using?
Specifically, Android documentation talks about 3rd-party application server, that I would like to replace with with my Windows Service. But I don't know how. Any insight from prior experience or at least suggestion of a solid path to achieve my goal is very much appreciated.
If you need just push notifications to android devices then it's enough:
- android application has to be able to pass the device RegistrationID (for example, through your Web Service).
- your service has to be able to send POST requests to https://android.googleapis.com/gcm/send in order to send the messages.
If you need some CCS features then you should implement 3rd-party application server using one of XMPP libraries for .net. It is also possible with Windows Service.
Related
I am building my first Android app and need to know how I could use push notification.
My project is a home alarm system and also I have built my own local web server. Now I want to push a notification from my server to my Android app when an alarm appears in my server.
Currently my garage doors use the MyQ app and when the garage door opens or closes I get a notification on my phone, I want to implement the same thing in my app.
I've been reading about the Google Firebase Cloud Messaging but it seems exceeding my need.
If you need push notification on your cell phone then you definitely need to integrate your app with Google Firebase. (or at least that's the right way of doing it).
Alternatively, there is something called as local notifications & background process in Android you could do long polling to check if the garage door is open (probably every 2 mins or something). However, I don't recommend that as it can drain your mobile battery.
Also I recommend using Flutter as oppose to using Native Android. As there are some pre-built libraries for android and Google Firebase integration.
Take a look at this Youtube video - https://www.youtube.com/watch?v=2TSm2YGBT1s
Ouh, maybe thats a little bit too much for starting with android - nevertheless I want to help you.
You need a communication protocol between your server and your phone (i.e. Firebase as you mentioned or Websockets).
If your server sends a message to you client (your phone) you have to create a notification. (Android Developer Guide). That's the theoretical part. You will also stumble across a lot of
challenges with
asynchronous programming.
Firebase might actually be the simplest option. You could build your own web socket service too, but that would probably be more than you need. See this previous question for more options: Android push notification without firebase
Android has some services that communicate with firebase to receive notifications.
You'll need to implement a service on top of your web server (using backend languages such as Python, Node.js, PHP,...) so it can send notifications when an event happened (like the door closed) witch isn't a simple way for a beginner.
then your web server sends a message to firebase and tells it to send a notification to my client.
so I highly recommend using firebase because of the simplicity of usage. otherwise, you should implement a separate service on your android phone to get the notification (if you want to run it locally) also as explained do the backend side.
I'm new to Android and want some advice please.
I need to build two Android applications.
Android application for train travelers
Purpose: Sending a custom message (for assistence) to the railway guard. The railway guard will be identified on the basis of the wagon number that has been sent.
Android application for train guards.
Guard must be able to login and be able to receive (realtime) messages from travelers.
In short, this should be a one-way messaging system.
I'm used to build RESTful web application with databases. I have no idea which technologies i should use in this situation. As far i know i can't use databases such as MySQL, Oracle on Android. I've read that Firebase is an alternative for this but i'm not sure if it's the ideal solution for this kind of application.
I could build a RESTful server and make calls from the application. I guess if i do so the messages won't be received as realtime push notifications.
Any advice please?
RESTful services are hosted on a server and cater to incoming requests with a response.
Remote notifications are handled by a remote server. Under this
scenario, the client application needs to be registered on the server
with a unique key (e.g., a UUID). The server then fires the message
against the unique key to deliver the message to the client
application via an agreed client/server protocol such as HTTP or XMPP
and the client displays the message received. When the push
notification arrives, it can transmit short notifications and
messages, set badges on application icons or play alert sounds to
attract user's attention.[21] Push notifications are usually used by
applications to bring information to users' attention.
Source of above text
You can understand the basics and implement it into your application.
However, it is too much work and you really won't be gaining much.
It is much better to use Firebase and the documentation is quite good.
You need to pay as you go based on how much you are using Firebase.
A place to start:
https://firebase.google.com/docs/cloud-messaging/
We are developing step by step game and need to send a notification to all players of current game when someone made his turn. We have a REST server that uses jersey + jackson implementation.
We know that it is possible to use Google Cloud Messaging for this purpose, however it doesn't support windows phone platform (we want to support Android, iOS, Windows Phone). Yes, Microsoft has their own server, but it requires to learn API of 2 services. Also, we found that server sent events protocol exists that can help us.
Is it good idea to use SSE (on all mobile platforms) instead of push notifications or there are some better solutions?
Thanks.
Using SSE is a bad usage for your requirement, as it will only work when your app is running, no notifications will be received when your app is closed.
You should use the notification system of each plateform you target (GMC for Andorid, Apple Push Service for ios, etc.)
Each device needs to register to the notification server and then you can send notifications to registered devices.
Since your targetting multiple plateforms, it would be easier to use a third party service that will do the registering and message dispatching to all your targetted plateforms through a simple API.
As suggested by Rahul Mathur, Parse is a known and reliable provider. Other possibilities include AWS SNS, Urban Airship, PushWoosh, and a lot more !
I suggest you to use parse as it is easy to implement
For android : https://parse.com/tutorials/android-push-notifications
For iOS : https://parse.com/tutorials/ios-push-notifications
You can also customise your php script on parse console.
I'm making a NodeJS server and an Android app that goes with it. I need to send alerts to my mobile app users that's coming from the web server. Something like a a chat app on the server and the android users getting the messages also (Facebook messenger?).
I have the server ready and Android app communicating to its database (for user login/getting user info/etc) using REST. I just need to figure out how to send info to the Android app WITH THE SERVER INITIATING COMMUNICATION. Any advice on where to start?
Start by looking at Google Cloud Messaging.
It's a free service that accepts messages from your server-based program and queues it to be sent to phones with your app when the phones are online.
Here is the overview on Android Developers.
YES!
Working with NodeJS, you have probably already heard of Socket.IO.
I'd say: Start there!
For your app to communicate with the server, there's also the java lib. These are great tools to start making any good real time service.
After you get along with this, you should also check GCM as #krisLarson suggested. And talkign about GCM, you have Node-GCM to make your work even easier.
Good luck!
I need to implement Push Notifications for Android and iOS using my own server in a local network with no Internet access.
More precisely, my users will have a mobile app (Android and iOS) which will connect to a local Server through a wireless network. This network won't have any Internet connection.
The server will need to send push notifications to the connected devices when some concrete events happen.
I'm using Django on the server side.
I've been researching a bit and it looks like using XMPP would be a neat solution. Thus I guess I need an XMPP Server to communicate with the mobile devices. I've seen several alternatives for the server side, though I don't understand completely what I need exactly. There are some XMPP servers such as Openfire and SleekXMPP. I'm not really sure what are they for. Should I choose one of them or use both?
On the other side, which alternatives are there in the app side?
What I need basically is some guidance on which technologies to choose and some references.
First if you decide with the XMPP protocol .. you can use any of the servers you mentioned and use any library for the mobile Smack for example for android, the mobile library will automatically update you with events using listeners .. it's a software layer that handles notifications.
Second if you want to implement it manually .. you'll have a service running on the mobile device that checks for updates periodically by requesting them from server.
Third The actual push notifications need to be registered over the internet, android for example need to communicate with Google Cloud Messaging.