- 04-10-2013, 04:11 AM #1
I have been researching a fair bit on Whatsapp, the Audio API issue, background agents, multitasking, messaging APIs and messaging on WP in general.
I extensively tested a number of messaging apps such as Whatsapp, Line, Hike, Viber, Skype in addition to a couple of others. (Did not perform extensive tests on WeChat, Kik, KakaoTalk and GroupMe)
There are two core problem in Windows Phone (7 and pretty much carry over to 8), resolving either of these would resolve all messaging app issues.
1) There is no reliable way for a developer to be sure that the phone will have an "always ON" internet connection, whether Data or WiFi. Consider countries where data packs are not an option and people tend to use apps on WiFi only, here WP7 has no way to keep WiFi always on for messaging apps (Due to lack of a relevant API) and WP8 in true half-assed fashion, provides the OPTION to do so, but all WP8 phones I have seen so far by default do not keep WiFi alive when screen goes off (you have to enable this explicitly). Even then, there is nothing preventing a user going through settings and accidentally disabling it again (by accidentally, I mean without realising the actual consequence to always available push notifications). Unless and until MS removes the option to kill WiFi when screen goes off, this issue will remain.
2) There is no relevant API (that I am aware of, and clearly that any of the major messaging app developers are aware of) that would keep WiFi always on even when screen is turned off and the option to keep WiFi ON when screen is OFF is NOT enabled. There ARE relevant APIs for music streaming apps (like Spotify, Pandora, TuneIn Radio) and also for VoIP apps (like Skype, Viber and Line though Viber and Line still don't seem to use them yet). So these categories of apps can keep WiFi alive under all conditions (or should be able to, I did not test that though I would not be surprised if they cannot because the API again does not work as intended).
Both those issues are related. All other OSes either keep some sort of internet connection alive at all times or give the apps some way to do so (Either via full multitasking or background APIs). WP is the only one that does not.
As you can possibly imagine, in a no Data, screen off/WiFi off scenario (still possible today on WP8), all real time IM apps pretty much become useless.
All except Whatsapp.
Whatsapp uses the background Audio streaming API provided by MS to keep a connection alive under *all* circumstances and possible use cases and as a result is able to more reliably push notifications than other apps (in this case, by reliable I mean it is able to push them at all when others cannot, I do not mean traditional reliability in the 'instant' or 'phantom' or 'delayed' notification sense. Just that it can whilst others can't because they don't have a data connection to do so).
Whatsapp cannot remove this API because it will render the app useless as a real time messenger for WP7 and possibly on WP8 when the user does not go out of his way to enable the always on WiFi mode through settings.
No other messaging app that I tested has a better solution for this or has come up with a workaround.
Every single time there is a Whatsapp post on the main WPCentral website or qn asked in the forums, I see the same moaning about the Audio API and how bad Whatsapp is. Well it is bad yes, but it is currently far better for people without Data connections than any other messaging app on WP. If you want the Audio API issue resolved, lobby MS to fix their broken OS. Whatsapp just found a fairly genius and practical workaround. It is hardly ideal because it kills battery and interferes with audio but it enables functionality that cannot otherwise be achieved.
Last edited by ah06; 04-10-2013 at 04:52 AM. Reason: Edited Title to specify WiFi connctivity
- 04-10-2013, 04:17 AM #2
Some further points:
1) Not all WP8 handsets have Portico yet and do not even have the option for always on WiFi. So they are in the same boat as WP7
2) If anyone has any info on a API for messaging apps, pls do correct me
3) Another way to resolve this issue without always on WiFi or providing an API would be to enable full multitasking like in Symbian, BB10 or even Android. Apps can then just have a background agent running at all times. However, this would not be better than just letting WiFi be on (either via an API or settings) to enable push notifications to go through. It's just an alternate method, not a "better" one.
- 04-10-2013, 04:36 AM #3
So it seems you have problems with notifications. If you do not then all the messaging apps should work. I use Kik, skype, ICQ and everything is working fine with push notifications and none uses the audio API. This is used only by Whatssapp because of WP 7 not supporting the always on feature for wifi as in WP 8. It is said, and hoped, that it will be removed at least for the WP 8 version of Whatssapp since other message apps are able to receive push notifications. If Whatssapp cannot work like the others then I can only blame them and not WP.
- 04-10-2013, 04:49 AM #5
This question is absolutely crucial (to anyone not able to understand what exactly is the issue): Do you have a data package?.
If yes, then that explains why you would fail to see the problem (because there would be no problem for your use case). I have explained the use cases exhaustively above.
Audio API cannot be removed unless and until MS provides one of the three fixes outlined above. No other messaging app has been able to work around this. I tested Kik since you mentioned it, it cannot work around this. It cannot deliver notifications when there is no connection in the first place. The Audio API makes sure that the connection exists. Kik doesn't.
Other messaging apps are not able to receive push notifications in the cases outlined above
I really advise people to read the entire first post more carefully to understand exactly why Whatsapp uses this API in the first place. No messaging app in the world can deliver notifications when there is no data connection to deliver it over. How do you deliver a notification to a device completely disconnected from the internet entirely. the Audio API is there to ensure this situation does not occur.
Last edited by ah06; 04-10-2013 at 04:50 AM. Reason: testes Kik to tested* Kik
- 04-10-2013, 04:59 AM #7
I'll repeat for the nth time.
If anyone has a data connection, then yes you will receive push notifications from all apps and wonder why Whatsapp needs an Audio API hack. But I implore you to please read and understand the issue. The Audio API is an enabling feature which keeps WiFi alive under situations of NO DATA PACKAGE which is extremely common in developing countries and in many of Whatsapps core customer bases.
If you believe other messaging apps (such as Line, Kik, Viber, Hike) are providing you with notification in those specific circumstances, then you are either
3) Haven't read carefully
4) Haven't tested properly
It is really quite simple. When there is no internet connection of any sort (WiFi or Data), there is absolutely no path or channel for the notifications to come through on. So no, other messaging apps cannot provide notifications in situations where Whatsapp cannot.
04-10-2013, 05:03 AM #8
- 133 Posts
True, whatsapp is the only messaging that delivers awesome notification. I already upgraded to 1308 yet LINE and Viber notifications are delivered yet. Well the toast shows up fast, but when i open the app it takes some seconds to finally shows that i have a new message
- 04-10-2013, 05:05 AM #9
However, WP8 merely has an option for it. It is NOT enabled by default out of the box and it can be disabled again at any time rendering the device (And user) back to the WP7 use case. I am not sure why you believe that other messaging apps can receive push notifications in that case because they can't. Whatsapp provides notifications in MORE cases, not less (than other messaging apps).
My guess is you have an always on data connection or you have manually enabled the WiFi always ON feature. Neither of which is the "default" case for the bulk of Whatsapp users
04-10-2013, 05:21 AM #10
- 248 Posts
-is it bad for WP7 users that there is no "keep WiFi alive"-option? YES! I am a WP7-user and really hate missing that kind of a feature
-is it bad for WP8 users that there is an "keep WiFi alive"-option which can be turned off? Nope? It's an awesome option! For WP8 users which live in countries where you have data plans it is pretty awesome to have the ability to turn of wifi if not needed... If you don't have a data plan, then just don't turn off the option... where is the problem?
- 04-10-2013, 05:22 AM #11
You said "Viber gives perfectly fine push notifications though without audio API".
That is not entirely correct. It only does so IF you have a data connection OR IF your screen is on OR if you went to settings and explicitly checked the option in WP8 to keep WiFi on when screen is OFF.
If those conditions are not met (say you do not have data and the screen off kills your WiFi, then 'Viber cannot give perfectly fine push notifications without audio API'). This will not happen on Android in the first place. If it did (because you turned off WiFi and Data) then yes, it would not get push either but I never claimed it would.
- 04-10-2013, 05:25 AM #12
dont see what the big fuss is
just like you said.. with no data connection or wifi it wont work
you make it sound like as if thats a flaw of windows phone
its common sense that it wont work under those settings
- 04-10-2013, 05:27 AM #13-is it bad for WP7 users that there is no "keep WiFi alive"-option? YES! I am a WP7-user and really hate missing that kind of a feature
-is it bad for WP8 users that there is an "keep WiFi alive"-option which can be turned off? Nope? It's an awesome option! For WP8 users which live in countries where you have data plans it is pretty awesome to have the ability to turn of wifi if not needed... If you don't have a data plan, then just don't turn of the option... where is the problem?
The problem is that WP8 does not have a Keep WiFi alive option which can be turned OFF. Instead it has a keep WiFi alive option which can be turned ON. Crucial difference. By default, WP8 kills WiFi when screen goes off. Hence, by default, the bulk of Whatsapps userbase does not have persistent WiFi. Therefore, they cannot remove the Audio API unless MS changes the way the OS works.
Remember, even if you enable persistent WiFi, it is possible for user to turn it back off without realising the consequences. What does Whatsapp (and all other messaging apps) do then? Would a user immediately realise that by disabling that in future he is breaking all messaging apps push functionality if he doesn't have data?
You can still have the WiFi off feature IF MS implemented it the way you described AND provided some sort of API for messaging apps to keep it alive or keep a background agent running. However, they don't provide any of those things.
- 04-10-2013, 05:35 AM #14Neither will wp8. keep the wifi alive setting on and push notifications work just fine
dont see what the big fuss is
just like you said.. with no data connection or wifi it wont work
you make it sound like as if thats a flaw of windows phone
its common sense that it wont work under those settings
You casually glossed over some pretty crucial points there. By default, WP8 kills WiFi. Are millions of not very tech literate users supposed to be aware that to attain basic messaging functionality, the first thing they should do is go into buried nested settings and enable an option to keep WiFi alive? (Its not even under WiFi, it is buried in WiFi>Advanced).
Furthermore, if you were the developer of Whatsapp, how would you deal with not just that but the possibility of someone turning it back off again without realising the consequence that messaging apps would cease to function on a real time basis.
What's your dat logic solution?
There a number of solutions:
1) Remove the ability to kill WiFi (and obviously enable persistent WiFi by default)
2) Provide an API so a certain app can keep WiFi alive (Music streaming has this but Messaging doesn't, why? This is why Whatsapp specifically uses an Audio streaming API)
3) Allow a background agent to run constantly (this would achieve similar results to #2
Most OSes allow one or more of those, WP doesn't. Until it doesn't, Whatsapp cannot get rid of Audio API.
Common sense yea? Why don't they do it then, why din't you realise it then?
There IS a flaw of WP right now. By default, ALL WP8 phones used without data plans completely lose connectivity by default as soon as the screen sleeps. Whatsapp prevents this and enables real time messaging. I'm somehow supposed to blame them for enabling this and support MS? (I would if any other messaging app had a better way, but they don't , they just roll over and die)
- 04-10-2013, 05:38 AM #15
If I understand correctly, you are suggesting that preventing WiFi from ever shutting off would solve all IM issues. That can't be right, because WiFi hotspots are NOT always available. IM needs to work reliably even without an accessible WiFi hotspot. On the road or wherever. If we don't have WiFi, then IMs must go through LTE, Edge or whatever other mobile data protocol is available!
I agree that WiFi should remain always-on. The option to have WiFi disabled when the device sleeps should be removed. However, the single biggest issue with delayed IMs is that some people disable their cellular data connection in WP's settings (I'll ignore those that lack data services entirely)... as a result, they are entirely dependent on WiFi. Then, and only then, is the question of WiFi always-on even relevant.
TBH, I'm not sure what WhatsApp's misuse of the Audio API really achieves.
What's the point of artificially keeping WiFi always on, when IM'ing must work just fine without WiFi?
Why not argue for cellular data always-on instead (at least for push messaging)?
I think those questions need to be answered first, before critique of the OS seems credible. Any ideas?
Last edited by a5cent; 04-10-2013 at 06:04 AM.
- 04-10-2013, 05:41 AM #16
Now tell me, how can any OS, basically any device that is NOT connected to the network, can send or receive any messages and provide push notifications? Basically all these messaging apps need a data connection to send and receive data, no matter what the OS is.
And if you wanna use mobile data to have real time push notifications, you can set one of your emails "Download new content" to "as items arrive". That way any app can now have access to mobile network in real time. Also I have used Kik before, and it had real time notifications, without using the Music player stream like WhatsApp does. Skype calls and IMs goes through just fine, same with Viber.
- 04-10-2013, 05:46 AM #17
know your OS before you buy it
when you set your wifi up - by curiosity everyone goes into adv.
thats how we are, we are curious people..
and when you go into advanced you will see the option there
What could whatsapp solutions be? every time they update the app, maybe add a disclaimer as the starting page saying check that wifi on setting is ticked. it is far better than the audio api - battery drainiing rubbish solution.
"Common sense yea? Why don't they do it then, why din't you realise it then?"
What do you mean i didnt realize it?
youre stating common sense bull**** that if there is no data access .. it wont work
"That can't be right, because WiFi hotspots are NOT always available. IM needs to work reliably even without an accessible WiFi hotspot. On the road or wherever. If we don't have WiFi, then IMs must go through LTE, Edge or whatever other mobile data protocol is available. The single biggest issue with delayed IMs is that some people disable their cellular data connection in WP's settings, or lack data services entirely... as a result, they are entirely dependent on WiFi. If the device shuts down WiFi when sleeping, well, that then cuts them off completely. No more IMs for them."
Youre making it sound like this is a WP issue
look at android
No data connection, no wifi hotspot when they are out.. you expect IM to magically work for them? there is no way for IM servers to send that information to their phone either.
You make it sound like android folks dont disable their cellular data when they are out - and have no access to wifi either
- 04-10-2013, 05:47 AM #18
- 04-10-2013, 05:51 AM #19
I am in no way suggesting enabling persistent WiFi would solve any and every IM issue. It would solve this one. Messaging apps are unreliable (cannot be relied upon to deliver messages) for precisely this one single reason. This pretty much entirely explains Whatsapps use of Audio API.
Of course, data is crucial, but I am not suggesting WiFi *Replace* data for IM apps.WiFi is not always available, neither is data. However WP handles data connections well (Does not terminate them). It does not handle WiFi well (it terminates them). As such it can sort of commit total connection suicide. This should not happen.
Whatsapp uses Audio API to prevent this exact scenario.
Let me explain Whatsapp's reasons in even more detail. Whatsapp is the most popular amongst its competitors (Kik, KakaoTalk, WeChat, Line, Hike, Viber etc). However most of these are region specific and often in rich countries or countries with cheap data.
KakaoTalk (South Korea)
Whatsapp is largest and is the biggest BBM drop in replacement. It is used very very widely not only in countries with cheap data but also by millions of people without any data whatsoever. They use it around the house and at work as a BBM replacement. You are right in that there may still be "blackout" periods when they travel or are otherwise out of range but the Audio API prevents any such *needless* occurences when they are IN range. If a sleeping phone terminated connections, 90% of the time you would be out of reach. Now if you're in WiFi range, you're instantly available. This is exactly how million of people are using Whatsapp today.
This might be hard for anyone in a rich country or one with cheap data or free messaging to understand but is the reality of their userbase.
- 04-10-2013, 05:53 AM #20
"This might be hard for anyone in a rich country or one with cheap data or free messaging to understand but is the reality of their userbase."
Def. agree with wp7 needing it.. because of the dumb wifi feature
but for wp8, no need.
people should know their phone.. and know about that setting
- 04-10-2013, 05:56 AM #21Now tell me, how can any OS, basically any device that is NOT connected to the network, can send or receive any messages and provide push notifications? Basically all these messaging apps need a data connection to send and receive data, no matter what the OS is.
WP does not allow it under conditions of no data, screen off (by default). Bulk of Whatsapp userbase falls in this use case. Hence they NEED to use the Audio API to keep a connection alive.
It would have been clear had you bothered to read the first post which you admitted you din't. No point talking to you any further. Do you frequently call people haters without reading their post first?
Last edited by Laura Knotek; 04-10-2013 at 01:17 PM.
- 04-10-2013, 05:59 AM #22
What if whatsapp enabled this as an option that is on by default? Would that help you? I would be willing to use it if they would allow me a way to turn off that hack.
Sent from my HTC TITAN X310e using Board Express
04-10-2013, 06:04 AM #23
- 273 Posts
This is how things are for all major mobile OSs. On iphone you say your app is a newsstand and you get to keep data connection alive(this is a conection over TCP/IP socket it does not mean connection through Wi-Fi router or presence of data on your contract). On android you let your background agent keep that connection alive(again this means that the whatsapp is connected throudg their server all the time). On WP you can't do that. To preserve battery WP kills all connections when an app goes to background.
So now you have the following options to make sure you know about your messages:
1. On WP8 you can mask your app as a gps app(again another hack no better than audio api) so now you get to stay in background and poll data faster
2. Use that audio hack stay in the background get to poll data faster
3. Use push notifications just like viber and Skype(no active data connection everything resides on a server faade that only push you notifications not actively pulling data in your phone)
Of course no one knows why they are so suborn and refuse to refactor their protocol to work with method no.3(push notifications). This would benefit all platforms not just wp8(improvements in battery in android and iphone).
But since viber and Skype can do it then I see no good reason why they can't do it and demand that MS gives them something else.
- 04-10-2013, 01:18 PM #24Play Nice, Be Helpful, and have Respect!
This means keep the language clean, keep your posts polite, and don’t get into arguments over dumb things. If somebody responds to a thread you posted in poor fashion, ignore it, and the moderation team will quickly clean it up (you can always report a post using the triangle to the top right of the post at any time if you observe anything that is in poor taste/against the rules). Think back to what your parentals and teachers used to lecture - if you don't have something nice to say, don't say anything at all.
Always remember that we are all unique and at different levels here - some of us are experienced Windows Phone users and forum junkies, while others are just starting out. If you’re on the experienced side, have patience for those just joining in on the fun and be helpful. With a little patience and a little help they won’t be newbies for long. Also remember that it is our differences that keeps this place interesting. If everyone was from the same place and at the same experience level it would be boring. This is a worldwide community united by a common interest - our love, or addiction as some would call it, for the Windows Phone!
Seriously though, any more problems and we'll be handing out infractions.
Last edited by Paladinleeds; 04-10-2013 at 01:19 PM. Reason: Copy paste blunder
- 04-10-2013, 02:53 PM #25
After reading this thread I am not sure why Paladinleeds hasn't closed it yet. Other than some awful posts that are thankfully deleted, this thread serves no purpose. As ChMar and a5cent have precisely pointed out there is no reason to defend whatsapp. It doesn't "need" it, it wants it.
I don't have WiFi at home. How do I use whatsapp? On data connection which is always on 3G or 3G+ and still whatsapp notifications are unreliable!
I don't see how any user would "accidentally" untick that deeply buried option which at least 40% of readers on this site had to dig the first day after the update was released!
As ChMar pointed out - the reason audio "streaming" as been still on going is not just to keep WiFi alive but also to keep the connection alive. All they need to do is invest in servers and allow push like Skype, Viber and make two versions - one for WP7.x and one for WP8.
I understand that if you don't have data plan then you rely totally on WiFi but as a5cent has said earlier - what is the most available connection? WiFi or 3G? Unless you are self employed and get food delivered to your door step, I don't see how you won't leave a WiFi zone at some point. So anyone dependent so much 24x7 on an IM app MUST have data connection no matter what phone he is using and what OS is available to him!
- By MarcMaiden in forum Windows Phone 8Replies: 8Last Post: 03-10-2013, 04:03 PM
- By sailorboi88 in forum Windows Phone 7Replies: 3Last Post: 05-07-2012, 06:28 PM
- By Kredrian in forum Windows Phone 7Replies: 18Last Post: 04-30-2012, 08:04 PM
- By ejb222 in forum Developers CornerReplies: 5Last Post: 04-19-2012, 09:55 AM
- By mike_langley in forum Windows Phone AppsReplies: 6Last Post: 11-30-2011, 02:54 PM