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

时间:2012-09-04 11:09:28

标签: android android-intent android-activity android-service

当用户长时间触摸网络链接(标准Android功能)时,我希望我的服务可以作为Share page的默认选项之一进行访问。这是我在清单文件中写的:

<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>

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

2 个答案:

答案 0 :(得分:7)

这是不可能的,你必须写一个虚拟活动才能做到这一点。

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

答案 1 :(得分:0)

这应该这样做:

<intent-filter
    android:label="Open Using My Service">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="http" />
</intent-filter>