I'm mainly reaching out to the Twilio team active on here đŸ˜€ and for the benefit of the community.
Our team will is looking to implement Twilio IP Messaging to fulfill our app messaging requirements. One of the use cases we'd like to handle is the ability for a user to turn off notifications for a specific channel. I don't see anything in the docs that speak to this, so we could of course implement the logic on our servers. But, I don't see the ability for a pre-event callback for something like onNotificationSend to check if a notification should go to the user. I don't want to use onMessageSend since the message should still go out, just not the notification.
My other thought would be to intercept the notification in the app and check our app state to see if that channel is able to receive notifications. Reading the docs for iOS notifications, it looks like I can determine what to do with notifications outside of the app being open, I just wanted to check if that was the best/only option for this scenario.
Thanks in advance for any help.
-Brad
I got the opportunity to talk to the Product Manager for IP Messaging at the Signal conference, and he said the ability to mute channel notifications is in the road map. So I think I'll wait to implement something until that comes GA.
Related
My intent is to send a user push notification through FCM when my webapp user(already subscribed to notifications) comes near a beacon transmitting Eddystone url. If the person does not have the app installed I would like the Android nearby notification to trigger but if the user is an existing app user who has already subscribed to app notifications, I would like to silence/suppress the nearby notification and use the eddystone-url meta:title and/or url to instead trigger a specfic push notification.
Even as I'm asking this I know for this to work, users Phone have to send a signal to my apps backend to trigger the FCM send. Not sure how though. Any guidance or alternative to show a more richer notification to existing app users would be greatly appreciated.
Great question, and great idea. Let me first summarize/clarify your question to make sure I have it right:
If your website/app is not yet installed, you would like Nearby to create a Notification whenever it is close to your Eddystone-URL beacons (to help drive incoming users). This is working well for you.
However, once your website/app is already installed, you would like to control Notifications yourself. You would like help accomplishing this.
I think there are two parts needed to solve this problem:
How can your website/app know when it is near an Eddystone-URL beacon?
How can your website/app let Nearby know it shouldn't fire a notification?
For (1), websites are not currently able to scan for Nearby beacons. There is an exciting new WebBluetooth api coming to the web (launching in Chrome very soon!), but it is not yet able to scan for beacons. This is something we hope we may get in 2017, but its not possible yet. Apps, however, can easily scan for URL beacons using the system Bluetooth apis.
For (2), I do not think it is possible yet to ask Nearby not to fire a notification conditional on your website/app being installed. However, I know this is a feature request we get from time to time and we are considering ways to support this use case. If all goes well, we will have something for you in 2017 around the time that (1) gets solved.
So, apologies, I don't think this will be possible for you to do today, but I do think its a great feature requests and I'll bring it to folks' attention.
(I also think Push Messaging is a red herring here, since you should be able to control notifications entirely on-device with Local Notifications).
I'd like my android auto notification to not have any reply mechanism to it. I just want a notification that you can swipe to dismiss, but the only two options i see for android auto are messaging and audio. The messaging makes the notification have a reply to it like this:
notice how there is a microphone for user to reply. I dont want that on my notification. I only want to display info but no reply mechanism. I am not interested in reply, only to notify user of something. i want it to look like this instead but it seems only system has this kinds of notifications.
Android Auto has defined guidelines for Messaging Apps.
It didn't consider normal notifications as a scenario that needs to be addressed now in Auto environment.
We can hope it may be made more flexible on future along with measures to make sure that distraction is avoided by strict certification process.
So the answer to your question is - Not possible now.
I am creating a app in android 4.0.3 i.e ICS version, which connects to the server when client gets login into the app.I am trying to get status of an client when he gets online or offline through server & seen onto the app screen.I am unable to proceed. Can anyone say me:
Is it possible to get the status of an user through server?
1-- How to proceed for first step...?
2-- How should I get a response from the server that the client is connected & viewed to other client example - when we login into skype our status shows available with green radio button, In same way how can I get it.?
It ll be very help full, If anybody guide me.
Many Thanks..
I'm assuming you're trying to develop a chat app ?
If this is the case, try using an XMPP library. XMPP is widely used for chat apps, including Facebook chat (and Google talk I think) and there are plenty of open source libraries available.
Otherwise, if you only want real-time notifications as a part of a bigger picture, try using push notifications. Google supports Cloud to Device Messaging (C2DM) for android. It allows to have push notifications to a specific device without you having to deal with persistent connections, battery and CPU use .etc.
C2DM approach comes down to this. When a client connects to your server, get a list of his friends and their 'C2DM IDs' and fire a C2DM push to their devices. This push is delivered to your app, and you can respond to it by firing a notification, or update UI .etc. (Your app doesn't necessarily have to be running. Push notification is delivered via a specific broadcast, and your app can register a receiver for it to wake up.)
Keep in mind that there is a quota for C2DM messages per device, per app and also a limit for the payload per message. So you're not supposed to send massive files via this. Just a notification to your app, so it can call your server and get an updated list, instead of polling.
You can get more info on C2DM and code samples here. https://developers.google.com/android/c2dm/
Hope this helps.
You may have moved on, but I'm posting for anyone who would run into this one in the future.
Firebase is a good solution to use in this scenario, if the app is always running when you want communication to happen. (It will not wake up your app as C2DM/CDM does, unless you have a service running all the time and still wouldn't wake up if the device is asleep... AFAIK)
It may be useful for some scenarios, but may be not for a chat app as you want the device to wake up when a message arrives.
Note that they have limitations on the free subscription though.
Is it possible to send push notifications to an android application without using Google server: C2DM?
So, I would like to have my own server which sends notifications directly to the app, but I'm not sure how are the notifications perceived by the device, because the device needs to receive notifications even if the app is not running and the notifications should appear in the notification center.
I think that the guys from www.airpush.com have managed to this, but I'm not sure how.
Can anyone help me with this please?
UPDATE:
Also I would like to know how to display the notifications in the notification center if I don't use C2DM? And if it is possible to configure the notification center to receive notifications from my server even if the user deletes the application developed by us, application which registered that device to receive notifications.
I want to send 3-4 notifications a day, but these notifications need to appear in the notification center and they should go only through our server. How can I configure the notification center within the app to make requests on my server for push notifications.
Thank You!
There is a solution from UrbanAirship called Helium push. According documentation Helium:
Works on Android 1.6 and higher
Does not require a Google Account
No default pushes per day limit
No default pushes per minute limit
Works on Amazon devices (e.g., Kindle Fire)
End to end Urban Airship support (i.e., API to to device)
Best throughput
The problem is that you need development app key for using this one.
Take a look at MQTT:
MQTT stands for MQ Telemetry Transport. It is a publish/subscribe, extremely simple and lightweight messaging protocol, designed for constrained devices and low-bandwidth, high-latency or unreliable networks.
It can be used (and was used in some applications) to implement custom server push solutions. One of the most well known applications using MQTT is Facebook Messanger.
You can easily find more information on MQTT in the Internet, e.g. in this SO question or in this blog post.
According to the FAQ on airpush.com, they're not using real push notifications but rather polling the server a few times per day. One reason I think this is a viable solution for you as well is that Android's C2DM apparently makes use of the Google Play Store, so it won't work on devices distributed outside of the Google eco-system. With over 5 Million Kindle Fires having sold already, that is worth thinking about.
From Airpush FAQ:
When executed once from the main activity of an Androidâ„¢ application, the Airpush client utilizes Androidâ„¢ OS's AlarmManager framework to schedule ongoing server polling events a few times per day. If an ad is polled from the server it is cached until optimal display time, which is algorithmically determined by the server.
Without using C2DM there's not option for a "real push notification". Because (afaik, correct me if I'm wrong) an android device registers at google (they can still deinstall malware from your phone via remote) and with this ip they are able to do a push notification. All other solutions could tend to be a "register at a server, keep the connection alive and wait for requests" or something and tend to be more battery-inefficient.
Parse has an excellent push notification service for Android, very easy to setup. More info here: Parse Android Notification Doc
If you want the user to only receive 3-4 messages per day and your messages are not bound to specific arrival times, you don't need pushing mechanisms.
Just create a service in your app that checks your own web service 5-10 times a day. If there is new data, make your app display it in the notification center.
If you don't want to have a service running all the time (like many messaging apps do), you can set up alarms (using the Android AlarmManager framework) that wake your app up regularily to check for new messages to display.
And if it is possible to configure the notification center to receive
notifications from my server even if the user deletes the application
developed by us, application which registered that device to receive
notifications.
That sounds like you want to write a virus or root kit ;-) You could use e-mails for your messages instead.
UPDATE 2013-12-30:
As just noted in my comment, rebuilding what GCM does is not a nice approach. It's enough when Google Services already load the device with this functionality. If your goal is just that Google does not see what messages you send to your users, you might aswell encrypt them. For Google not being able to actually read your messages, the client app should generate a key and send it to your server. All messages you send via GCM can then be encrypted using that key.
If you just want to circumvent Google's restriction on the amount of messages sent to users, you could pack multiple messages into one GCM notification and show them one after the other. But then again, we are back at some kind of polling solution as described before, with the exception that the user does not need to have internet access when you want to show the messages as they are cached on the device.
I don't know if this question has already been answered. In my IOS/Android app, I wanted to monitor a URL for updates (for example, UPS Tracking). I would like to know if I'm using a API for tracking parcels, and even if the provider says that they don't support Push Notification, is there any other way for my app to enable Push Notifications? All I need is get notified by APN or Android Push notification when there is a change in the package status even if the provider doesn't support it.
Also, is this possible with Urban Airship?
Thanks.
Ideally, you will need to build your own backend server to sendout notifications using Googles C2DM service: http://code.google.com/android/c2dm/index.html
I'd assume you'd send the paracel ID to your server, capture it, then check for updates periodically. Then, once the status has changed, leverage C2DM and push out the notification to your client.
If you choose to have a service on the device check for this, I'd be cautious - you can easily chew up a lot of expensive data transfer, for not a lot of value.
If I understand your question correctly, I think the recommended solution is to use a service to periodically check the URL for updates and if the status has changed, push a notification to the user from your service.