Trigger BackgroundTask by calender events - windows-phone-8.1

Imagine a background task being registered to get triggered at a calender event (event from the build-in calender) from a Windows Phone 8.1 app. What are the possibilities for doing so?
As far as I prototyped it it is not possible to subscribe for the notifications. The only possibility I see is to copy all calender events at background task registration and let them sit in some owned cloud service that pushes raw notifications (raw notifications are very important) to my background task from WNS which requires internet connection which again is impractical. Moreover the service is required to be placed in lock screen. There are so many problems with synchronizing the calendar events if you think about it too.
The solution I would like to implement however should not require internet connection. How can I simplify it?
For more information on background tasks please visit https://blogs.msdn.microsoft.com/wsdevsol/2013/11/08/background-tasks-myths-and-realities/

Related

Stopping background audio task on app termination

Due to the way that BackgroundAudio task and app lifecycle are built up, there doesn't seem to be a way to detect actual closing of the app and stopping its background task at this point.
This creates an odd situation for the user, where she can try to forcibly terminate the suspended-but-present app to "get rid" of the playing audio, yet the playback continues.
There is a possibility of reacting to the Suspending event, but that would just mean that the audio stops playing as soon as the user switches out of the app.
However, we are required to stop audio playback only when the user terminates the app via App Switch screen.
Is there any way of detecting that the app has been closed from its background task?
The BackgroundAudioTask is designed to continue even the main app has been terminated/suspended. There is no way to inform the BackgroundTask that the suspended app has been terminated.
After the app is suspended, no events are called or any code is run from your app. The last things what you can do is to put something into suspending event and/or window's events. You can save something in LocalSettings which will be inform the BackgroundTask that the app is inactive, it's also last chance to send a message to your task with information about UI status.
The above method is used in official MSDN sample.

Create and maintain a SignalR connection in a WinRT Background Task

I currently have a Windows Phone app that connects to a SignalR service to receive notification data. The service pushes data to the phone, which the app accepts, process etc and it’s all working as expected.
However, I would like the app to continue to receive the notification data when the app is suspended and no longer in the foreground, and display the notification data as a toast message.
From what I can see, the Background Task infrastructure offers no way to do this.
I have access to a Suspending and Resuming event (using Prism) so here I could Register/Unregister my background task.
For the trigger, the only one that comes close to being relevant is the TimeTrigger, but this only has a freshness time of 15 minutes, so assuming I am recreating the connection in the background task, I would end up opening and then instantly closing the connection every 15 minutes which isn't what I want to do.
I could have an “infinite await” that just hangs until a timeout, but this doesn't feel like the right way to go (and the resource usage would be terrible).
Is there a way around this to achieve what I want to do?
No, Windows Phone apps cannot keep a channel open like this. If the goal is only for toasts then you can do the computation on the server and push a toast notification.
Windows Store apps can do this with the ControlChannelTrigger class, but it is not supported on Windows Phone.

Windows Phone 8 fire a background task on call picked without accessing any call details

I am looking to develop an application where i just need to detect whenever a call is picked up.
I do not need any details related to call log and just need the event to be fired which will manipulate the sensors and do some functionality.
Is it possible to have that kind of access. Is it available out of the box and if not, is there a way that I can request for access from Microsoft?
WP apps don't have this kind of access/functionality.
Only possible way would be to use the Obscured Event (http://msdn.microsoft.com/library/windows/apps/microsoft.phone.controls.phoneapplicationframe.obscured%28v=vs.105%29.aspx) Which requires your app to be launched all the time you want to capture the activity.
The problem here is that Obscured event is also fired in the case of alarm or lockscreen.
I doubt Microsoft will grant you access to more functionality.

Launch application automatically from a push notification on Windows Phone 8

I would like to launch an application using parameters provided from a push notification on Windows Phone 8.
The behaviour I wish to achieve is that as soon as the user receives the notification, the application will be launched with the parameters provided in the notification. I.e. seamlessly present the notification in a more user friendly way.
As far as I understood there are three push notification mechanisms. Toasts, Tiles and Raw.
None of them seems to be able to handle the wanted behaviour.
Toast: The message is shown even if the application hasn't been started. It does not start the application unless clicked on but seems to be closest to the target.
Tile: Message is shown if the application has been pinned. But they may be difficult to notice unless the tile is pinned fairly high on the start screen.
Raw: Works in more power states but requires the application to be running. This doesn't seem to be a match because I want the notification to be received when the application is not running. I couldn't find information about which application states where raw notifications are handled. I would prefer all.
Did I miss something in my research? If anyone has a hint of how to put an application in the foreground from a push notification (without user interaction) it would be greatly appreciated!
My first attempt was to trigger the application start using SMS but that seems to be a no go.
See my post Launch application automatically from an SMS on Windows Phone 8
You can not automatically launch an application on Windows Phone (and neither can you on iOS or Android). What you can do is provide a URI with the Push notification so the user is taken to a page with the needed information
you can not put an application in the foreground from background without user interaction.

How to detect calls while app is in the background?

So I understand that a foreground app can detect phone calls by registering for the obscured event, but while my app is running in the background, playing sound, sending notifications, etc, it does not hit the same event.
Is there a specific way to handle phone calls in this circumstance? The obscured event is the only one that I can find for detecting phone calls, but it won't work in this instance.
Unfortunately, with the current API there isn't...
In fact, I'd say that the obscured event can't even be considered a reliable way to detect an incoming phone call: you can use it right now for that purpose, but tomorrow Microsoft can just go ahead and add new stuff that will raise that very same event!