I'm trying to detect screen on/off events from a background service on iOS.
Because my app is not necessarily in the foreground, looking for app lifecycle events such as this aren't any use:
Lock Unlock events iphone
The best solution I've got so far is to search through the system logs, looking for Springboard events. Problem is, it's a pretty expensive operation, and requires regular polling which is a waste of battery. The solution needs to work on non-jailbroken devices but doesn't necessarily need to be app-store approved.
Can anyone suggest something better?
Related
Seems like this is an often enough asked question. Rather than asking if possible, I'm wondering if there's any potential workarounds.
I understand iPhone background tasks will not allow one to take pictures from a Background Task.
Would there be any other solution to capturing a picture programatically, (1 hr+ intervals) on iOS?
It appears there a variety of potential solutions on Android:
Background services (execute camera function from background)
A wakelock (keeps the App alive at the expense of battery)
Timer (utilize timer to start a service or app)
What would be a potential solution on iOS, or is there actually NO solution for this. Not being an iPhone user myself, are there not any time lapse apps that have the screen turn off??
I am working on the app that shows Ads (Video or image) when iPhone is running. If I open any app(eg. Twitter) then also my Ads should be visible at particular interval of time. Is it possible to do so?
No. Your app will not be informed about any other apps being launched. Even if it were, you can't "force-grab" the foreground to display videos. That would totally violate any user interface principle established by iOS.
Besides the technical aspect I'd have my doubts of such an app surviving app review in general, though I don't know the specific part of the TOS right now.
It is possible to show your ads inside your application in intervals or in any pattern you like. However it is not possible to bring your app to foreground when in background to play ads, it is actually not recommended at all. Best thing you can do is set a timer when the app gets in background to send a notification.
I'm building a project which is something like an Alarm Clock app. I know there are inherit limitations here (as compared to the built-in Apple Clock app) but I'm trying to assess if these limitations will be a blocker.
In the end, I need to be able to schedule an alarm/notification at a certain time, and have it sound when the phone is locked. Furthermore, I want to be able to interact with the app from the lock screen (including shake and volume gestures).
Does this require me having the app run in the background, and scheduling LocalNotifications? If its in the background, and the LocalNotification fires on the lock screen, is it possible for the User to interact with the application? i.e. With the app SleepCycle, you can shake the phone from the lock screen to trigger a Snooze. Is that sort of functionality possible only because the app is running in the background (in the case of that app, I know it's running in the background)
yes. you need to be running in the background for interacting on the lock screen
Is there a way to change the behavior of the iOS Lockscreen? For instance, can an app, if active, provide a user with dynamic content, such as pictures, as the phone's background, and, in addition, allow a user to swipe left (in addition to swiping right, if they want to unlock the phone) to engage said content?
Is there a way to change the behavior of the iOS Lockscreen?
No.
For instance, can an app, if active...
No.
iOS doesn't provide any API that would allow the sort of thing that you describe. It might be possible to modify or replace the lock screen if you jailbreak your phone -- all bets are off at that point. But an app that uses the Apple-provided API has no way to modify the lock screen.
Also, note that if the device is locked, your app won't be active. You may have intended a looser definition of "active," but looking at the linked chart of app states will help you understand that what you're looking to do isn't achievable with the current API. Apps have to be active to receive events, but a locked phone implies that your app will be in an inactive, background, or suspended state if it's running at all.
No. (Not if you're talking about an 'app' in the sense of the App Store)
The only way an app can interact with the lock screen is through notifications, and cannot alter the standard lock screen interface.
You can alter the lock screen with a MobileSubstrate tweak on a jailbroken phone, but this requires reverse-engineering SpringBoard (the iOS launcher app), can be quite complicated and obviously cannot be distributed through the App Store
In one of my apps I have to detect external sound even if the app is in the background. I have some question on this.
Is it possible to detect external sound continuously even if the app is in background mode or closed? If so then will it have an effect on the device battery?
Does apple allow these kinds of app?
If my first question is not possible then is there any alternate way to achieve this?
It is impossible to detect the external sound when the app is in background.Due to background task time restrictions, iOS Background Task can not be run more than 10 secs.
app is not possible.
You can make notifications while the app running in background. But I dont think any way to achieve this functionality.
This is not possible.But you can make it only for some secs.
With Push Notifications it is possible.