为服务指定SEND(共享)意图过滤器

smi*_*hak 8 android intentfilter android-manifest android-intent android-sharing

我试图过滤和处理android.intent.action.SENDService的一个动作中的意图.我在下面写了以下内容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>
Run Code Online (Sandbox Code Playgroud)

现在,问题是我没有在"共享通过"选项列表中看到我的应用程序,例如,尝试从浏览器共享网页或联系人列表中的联系人.但是,如果我将intent过滤器移动到主<activity>标签(而不是<service>),我的应用程序名称和图标出现在"share via"选项列表中.

我在这做错了什么?无法将某个SEND操作定向到服务?

Com*_*are 9

我试图在我的一个服务中使用android.intent.action.SEND操作过滤和处理意图.

ACTION_SEND 是一项活动行动,因此不能被服务或广播接收者接收.

现在,问题是我没有在"共享通过"选项列表中看到我的应用程序,例如,

那是因为它不是一项活动.

不能将SEND操作定向到服务吗?

选择器中出现的内容(例如,for ACTION_SEND)必须是活动.不过,欢迎您的活动与服务进行沟通.