用于在android中浏览XML(特别是rss)的Intent过滤器

时间:2011-01-03 22:51:06

标签: android android-intent

每次用户访问浏览器中的xml(特别是rss)页面时,我都会运行一个活动(至少假设用户从可以支持它的应用程序列表中获取它)。

我目前已经有了当前的意图过滤器:

    <activity android:name=".activities.EpisodesListActivity"
        android:theme="@android:style/Theme.NoTitleBar">
        <intent-filter>
            <category android:name="android.intent.category.BROWSABLE"></category>
            <category android:name="android.intent.category.DEFAULT"></category>
            <action android:name="android.intent.action.VIEW"></action>
            <data android:scheme="http"></data>
        </intent-filter>
    </activity>

现在你可以猜到,这是一个邪恶的意图,因为它想要在通过http请求页面时打开。但是,当我发布这条线时:

<data android:mimeType="application/rss+xml"></data>

制作它:

    <activity android:name=".activities.EpisodesListActivity"
        android:theme="@android:style/Theme.NoTitleBar">
        <intent-filter>
            <category android:name="android.intent.category.BROWSABLE"></category>
            <category android:name="android.intent.category.DEFAULT"></category>
            <action android:name="android.intent.action.VIEW"></action>
            <data android:scheme="http"></data>
            <data android:mimeType="application/rss+xml"></data>
        </intent-filter>
    </activity>

该应用程序不再声称能够运行rss文件。

另外,如果我将行更改为:

<data android:mimeType="application/xml"></data>

它也不起作用(甚至对于通用xml文件)。

因此,为了宣称活动支持rss,我需要制作什么样的过滤器。

(另外,如果你能告诉我我怎么知道用户打开的是什么网址,还有奖励积分。到目前为止,我总是使用附加内容将这些信息从一个活动发送到另一个活动。)

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

尝试将此作为您的意图过滤器

        <intent-filter android:label="@string/app_name">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="http" />
            <data android:mimeType="application/rss+xml" />
            <data android:mimeType="application/atom+xml" />
            <data android:mimeType="application/xml" />
            <data android:mimeType="text/xml" />
        </intent-filter>