我有一个活动,我想在每次用户访问浏览器中的 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。
(另外,如果你能告诉我如何知道用户打开的 URL 是什么,那就加分了。到目前为止,我总是使用附加功能将信息从一个活动发送到另一个活动)。
感谢您的帮助
试试这个作为你的意图过滤器
<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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)