I have an activity that gets some user input and puts that information as extra into an intent to start (create) a service.
I then want other apps to be able to use that service (bind to it).
I, however, do NOT want these apps to be able to start the service, as I, as mentioned before, need some user input to correctly start it. So if an app wants to use the service, it can only bind to it if it is running. If it isn't, the app can only start the activity that starts the service after getting user input.
As I understand it, setting android:exported in the manifest to true allows other apps BOTH binding and starting a service.
Is there any way to do what I need?
On another note: Is there any reason onCreate in a service does not get the intent? I would like to get the extra in onCreate, as I only need it when the service is first created. I'm currently circumventing this by getting it in onStartCommand and instantly returning if onStartCommand gets called a second time, but that seams like an unnecessary step.