Background Task Execution for FDA Class B Medical App Using BLE

Hello Apple Developer Community,

I am developing a medical app that is classified as Class B according to FDA regulations. The app connects to a medical device using Bluetooth Low Energy (BLE) to collect critical medical data such as ECG readings. To ensure accurate data collection and maintain the quality of the medical readings, the app needs to wake up every five minutes in the background and perform tasks for approximately 30 seconds.

I understand that iOS has strict limitations on background execution to preserve battery and system performance. However, due to the medical nature of the app and the need for periodic data collection, I am seeking guidance on the following:

If I can provide documentation that the app is associated with an FDA-approved Class B medical device, would Apple allow more lenient background task execution policies? Are there specific APIs, such as BackgroundTasks, CoreBluetooth, or other recommended strategies, that could help me achieve this behavior reliably? Is there a process to apply for an exception or special consideration for medical apps that require periodic background activity?

Any insights or recommendations would be greatly appreciated. Thank you!

You will need to approach this problem upside down. There is no facilities (nor any special exceptions and consideration for them) that will periodically wake up your app every 5 minutes.

This periodicity will need to be controlled by your medical device. What would need to happen is, you will design your app, so it is always scanning or trying to connect to the device in the background.

Then, your device would wake itself up every 5 minutes and start advertising. Your app would be suspended in the background, and the system will wake it up whenever the device is detected, and then you can start downloading your data.

How you would implement this is explained in the document Core Bluetooth Background Processing for iOS Apps

You would have to make sure the device advertises at a decent interval as recommended in the Accessory Design Guidelines for Apple Products How frequently, how fast, and how long the device will advertise will be a balance between your power source and the delay allowed for reconnecting every time.

Things will go smoothly if you were to pair and bond with the device.

Hope this gives you a good starting point to build your solution on.


Argun Tekant /  DTS Engineer / Core Technologies

`Thank you for the guidance! I have a follow-up question:

Currently, the device is always advertising.

The device sets a flag every five minutes in the advertising packet (as shown in the attached images). My idea is to connect in the background only when the flag is 1 and perform data collection for about 15 seconds.

Would this approach be a recommended practice within the Core Bluetooth framework, or is there a better way to handle this scenario?

Thank you for your support!

Background Task Execution for FDA Class B Medical App Using BLE
 
 
Q