How to programmatically wake an external screen attached to an iPad - ios

I'm developing a standalone kiosk that is composed of an iPad 2, and an external screen. I have the two connected by cable, and the iPad is locked in a special case to prevent it from disappearing. This case makes the access to the connector impossible.
The problem I have is that when the iPad wakes from sleep (user interaction) the screen often doesn't wake up. Once the screen awake however, there is never a problem of it going to sleep by itself (this rules out a physical connection problem). I manage to wake up screen after several tries of switching on/off the monitor or letting the ipad fall a sleep and then waking it up.
My guess is that the iPad fails to send the signal while the monitor is scanning for it. However, after several tries I get them both to do their things at the right time, and that is when it all starts to work.
Hence the question. Can I programmatically make the ipad scan (send signal to) the external monitor? Ideally I would do it from the app I'm developing, but a standalone app could solve a trick too.
I've looked through the UIScreen Class reference and googled quite a bit, but so far to no avail.

Related

Xamarin - iOS backgrounding with BT low Energy and TTS

I'm working on a proof of concept app. I'm using Xamarin for iOS. The iPhone app runs in the background and watches for particular BTLE devices and speaks using TTS when the signal is at a certain strength. I have TTS working and I can recognize the BTLE devices when the app is in the foreground.
However, I'm having trouble getting either working when the iPhone screen is off. In Android, I'd just use a wake lock, but that appears to not be available in iOS. I tried setting the background modes in the info.plist file for BTLE and sound, but I don't see any processing happen while the unit is suspended. Can anyone point me in the right direction?
This is just a proof of concept, so I'm only looking at the latest iOS version and I'm interested in even hacky answers.
Thanks!
You will need to create at least one background task UIApplication.SharedApplication.BeginBackgroundTask and end it with EndBackgroundTask when you finish transferring your data.
Note that you will have approximately 10 minutes in background. If user switch back to the app the time will be reset.
You might also want to disable application idle timer to prevent the screen to go black when the user doesnt touch it.

How to keep Chrome Cast running in background iOS?

I have a simple question when you go to home screen of iPhone and do not quit the application than the chrome Cast device stops playing the video on screen how can I keep playback alive while the application is running in background.
If you have a video app and it is running in a cast device, you would want the following behavior:
if user "explicitly" disconnects a device (through the cast menu), then receiver should look at the connected devices and see if there is any "other" connected device. If there is none, it should stop the application on the cast device. If, however, it finds another connected device, it should not stop the app.
If user doesn't explicitly disconnect but device gets disconnected since the app goes into background, or phone goes out of wifi range, or it battery dies, or ..., then receiver should not stop the app and should let it run, even if there is no other connected sender.
If you follow these two in the design of your app and your receiver, then you shouldn't have any issue when your phone goes to sleep or your app goes to background. Do you still see an issue given the above?

Bluetooth icon stays white?

I am working on an iOS app which uses Core Bluetooth. When the app gets SIGKILL-ed, the Bluetooth icon on one device stays white, even though it isn't connected to anything. When I next run the app, that device has problems connecting to the other device.
How do I "refresh" the connections? Or is there a way to cancel connections before the SIGKILL?
(The devices have to stay connected even when the app is in the background)
As an experiment you can try to retrieve the connected devices with the retrieveConnectedPeripherals method. If the device you are trying to connect is in the connected list, then it may be possible to start using it again.
Also, try to forcefully disconnect the other device by removing the battery or turning it off. If the connection stays there, then this is definitely a bug.
This is most probably an iOS bug or some optimization that is implemented only for handling connections between i* devices. I don't know of others having this issue, neither did I stumbled upon it but in these cases it is best to report it to Apple at the same time with as much info as you can provide (https://bugreport.apple.com/) You should try with newer iOS versions as well to see if it still exists.

How can I autolock / awaken an iPad if the home button is disabled or covered?

I am building an iPad Kiosk App and my customer wants the iPad to be "locked into" the app to keep users focused :) I have found two solutions to this. One is a lovely kiosk case which covers the home button, the other is setting SBStoreDemoAppLock as outlined in http://rick-hawkins.blogspot.co.il/2012/01/turning-ipad-into-kiosk-device.html
But the customer is also worried about screen burnout (and burn in) and wants to be sure the iPad goes to sleep, or at the very least to a screen saver, when inactive. If I have disabled the home button though, I cannot let the iPad go to sleep because it cannot be woken again. Ideally touching the screen would awake the iPad and go straight back into the app.
Is there a solution that doesn't involve me creating a fake sleep feature or screen saver as part of my app?
I would not worry about "burn-in", these aren't CRTs from the 1980s. Also, it has been announced that this type of feature will be available in iOS 6.0, so you may want to wait a few months and use 6.0.

iOS - Relevance of the clock appearing when resuming?

I'm working on a long-standing, fairly-complex iOS Cocoa app, and I'm trying to fix performance when resuming from the inactive (say, locking the device). The problem appears on all versions of the iPhone (we support back to the 3G).
The steps are:
Run the app.
Lock the screen with the sleep/wake button (lock
button).
Resume the app. The app appears on the same view that it
showed before, but it's non-responsive. Also, in the OS bar, the
carrier, signal, battery, and location icons appear, but the clock
is missing.
After about a second, the clock comes back, and at about
the same time, my app is responsive.
I would say that it's an iOS thing, but most apps don't take nearly that long to come back, including to show the clock.
What is the significance of the rendering of the clock in the OS task bar when resuming from sleep? I need to know what period of time this represents (after this event/action/delegate/etc, but before another one) so I can narrow down the point of the code to examine.
When I debug with Xcode, this doesn't happen. It also doesn't happen in the simulator, ever.
Thanks!

Resources