How to maintain the SMS sending feature in some way

Hi all, is there any follow up on this? I saw that there is a GitHub issue to figure out how to move forward with the SMS related code, but haven't seen much discussion.

As you can probably tell, I am keen to maintain the SMS sending feature in some way, so would like to have this figured out before it gets removed from the codebase.

Are we better off discussing here in the forum, GitHub, Slack, or elsewhere?

@abbyad If a contributor did the work to split off the functionality, it might be possible to keep around.

I'm a little concerned that Google will go even further and prevent apps with prohibited features that are served for sideloading from even being in the Play Store.

Thanks @LN, I get the hint :slight_smile:

If anyone else is already looking at this please reach out here. We'd also like to hear opinions on the approaches discussed on the issue:

  1. Use a build variant (aka product flavor) to include the SMS permission and code.
  2. Falling back to using an Android Intent when SMS permissions are not available

I wasn't trying to be coy! There was a lot of interest around SMS support when it added a new really lightweight way of gathering data. That is, if you could just download Collect from the Play Store, set a source phone number representing a real physical device or an easy-to-setup SMS gateway and go. Unfortunately it's less compelling if it requires dealing with separate APKs and it's unclear who has the cycles to take on the extra maintenance burden currently. So identifying someone who could take on that work is probably the first step to getting it done.

Ya, that's understandable!

Creating a separate APK that is side-loaded and handles SMS is not as seamless as things were a year ago with SMS, but worth considering alongside the other options. Perhaps one of the existing SMS gateway apps out there can be used for this by exposing an intent. Those that come to mind are RapidPro Android Channel, SMSsync, and Medic Gateway.

Do you know of any other open-source Android SMS gateways worth looking into?

I haven't thought deeply about this, but the likely way to go is to have a separate app whose only purpose is to take messages from incoming intents and send those without user-intervention over SMS. This app can be side-loaded and Collect (or any other app) can talk directly to it.

Said app could be uploaded to the Play Store, but it'll need to be set as the default SMS app which means it may not be useful on a device that's not used full-time for data collection app or it'll need some "Stop being the default listener app" or it will have to have all the normal features people expect out of a normal SMS app.

1 Like

A side loaded app that acts as a service with a single function sounds like a good idea. As we dig into it we may find some difficulties with a separate app simply because Android introduces new restrictions for background processing with every version, as you can see in this overview.

I tried a quick minimalist prototype of the various ways and I kept getting blocked on an Android 8.0, but it is worth exploring further to see if it is feasible for a service to do what we want without a UI. Otherwise we may need a UI element, and worst case scenario we can revisit other options again. We'll likely do a spike on this in the next month or two if no one else has already by then.

1 Like