Specifying a SEND (sharing) intent filter for a Service

android, android-intent, android-manifest, android-sharing, intentfilter

Solution

I am trying to filter and handle intents with android.intent.action.SEND actions in one of my services.

`ACTION_SEND` is an activity action and therefore cannot be picked up by services or broadcast receivers.

Now, the problem is that I don't see my application in the list of "share via" options when, for instance,

That is because it is not an activity.

Can't a SEND action be directed to a Service?

Things that appear in a chooser (e.g.,. for `ACTION_SEND`) must be activities. Your activity is welcome to communicate with a service, though.

Problem

I am trying to filter and handle intents with `android.intent.action.SEND` actions in one of my `Service`s. I wrote the following in my `AndroidManifest.xml`: ``` <service android:name=".app.ScreamerService" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.SEND"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="*/*"/> </intent-filter> </service> ``` Now, the problem is that I don't see my application in the list of "share via" options when, for instance, trying to share a web page from the browser or a contact from the list of contacts. If, however, I move the intent filters to the main `<activity>` tag (instead of the `<service>`), my application name and icon do appear on the list of "share via" options. What am I doing wrong here? Can't a `SEND` action be directed to a Service?

Original source