How can I achieve my app activity to start automatically in the background

We are building a personal safety app and it has automatic presence detection for when you enter or exit a geofence.
Depending on your presence, you are able to receive alarm messages from other users.
Since users sometimes reboot their phone, we wish to start the app automatically at phone boot.
My Pixel 6 does not have a built-in autostart feature like OnePlus.
At the moment, we are using the RECEIVE_BOOT_COMPLETED filter to start the activity but this does not work on the later android versions or iOS.
As a work around, we are showing a notification saying you should start the app.

Is this something anybody has experience with? How did you/would you solve this?

Our last resort would be some sort of MDM feature.

@modrar thanks for the extensive answer! The option that I am struggling with is the foreground service.
I AM using a foreground service to have the app run in the background, so I have one implemented. However, I don’t know how to use one to actually start the app.
Is that something you have a snippet for or something?

Thanks @hanselsen for this question and @modrar for the detailed answer.

I’m working on an Android app for tablet for my local church.

@modrar could you please share some code examples on how to acheive the three. Would they require leaving Expo Go?

I’m trying to launch my app at startup. It’s a kiosk app that runs on tablets. In case the device restarts, I need to auto-launch. Extra permissions is no problem.

This blog post has a good example demonstrating the native code needed to reapply the geofences on boot, which in theory could be built into a custom native module.

Within the SDK itself, I’m wondering if you could do something with background fetch, which has uses the RECEIVE_BOOT_COMPLETED intent filter behind the scenes.

The geofences are not native geofences, but built in javascript (can also be a polygon).
The challenge here (I think) lies in starting the Redux store and sagas upon boot. Do you know if it is a possibility to start the store and the sagas while not having to open the app on boot?