Hi,
I'm developing SafeChain, an occupational lone-working safety application for iOS and Android.
One of our objectives is to detect a potential fall using the iPhone's accelerometer and notify an assigned responder if the worker doesn't acknowledge a warning.
The requirement is for this to work while the iPhone is locked or the app is backgrounded, without requiring an Apple Watch.
We've tested several approaches on a physical iPhone:
CMMotionManager: Works reliably in the foreground, but we recorded a 254-second interruption during a five-minute locked-screen test.
CMSensorRecorder: Successfully recovered 20,635 accelerometer samples from a seven-minute locked-screen recording, with a maximum sampling gap of 0.024 seconds.
BGAppRefreshTask: Scheduling requests were accepted, but we could not confirm timely background execution.
Our challenge isn't obtaining the accelerometer data. It's ensuring the application can analyse that data and initiate an emergency escalation promptly, even while iOS would ordinarily suspend the app.
SafeChain also provides lone-worker check-ins, manual SOS, responder escalation and contact-loss monitoring.
My questions are:
Is there currently an Apple-supported approach for continuous or event-triggered motion analysis on an iPhone while an occupational safety application is backgrounded?
Would a genuine lone-worker location-monitoring feature provide a legitimate basis for background location execution alongside Core Motion processing, assuming location tracking is itself an intended user-facing feature?
Is there an entitlement or alternative API specifically available for occupational safety applications requiring timely emergency detection?
If none exists, is it correct that dependable, real-time, iPhone-only fall detection is not currently supported by iOS?
We want to comply fully with Apple's guidelines and avoid implementing a background-execution workaround that may prove unreliable or fail App Review.
Any guidance from Apple engineers would be greatly appreciated.
Thank you,
2
0
147