使用intent-filter使我的服务可访问

Den*_*nis 3 android android-intent android-service android-activity

我希望我的服务可以作为Share page用户长时间触摸web-link(标准android功能)时的默认选项之一进行访问.这是我在清单文件中写的:

<service android:name=".ShareLink"
            android:enabled="true">
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
    </intent-filter>
</service>
Run Code Online (Sandbox Code Playgroud)

但它仍未显示.我究竟做错了什么?PS当我对Activity做同样的事情时 - 它工作正常.

nan*_*esh 7

这是不可能的,您将不得不编写一个Dummy Activity来执行此操作.

这是因为,ResolverActivity显示名称或选择要启动的相应组件通过查询仅Activities与API匹配意图 来获取列表PackageManager.queryIntentActivities

  • 添加具有上述intent过滤器的活动,如果它在oncreate中执行一个小作业并在Oncreate中调用finish().如果它是一个更大的工作,在活动中启动服务并再次在Oncreate中调用finish() (3认同)