这里是我用于我的应用程序的意图过滤器,如果有人可以告诉我我做错了什么。
<uses-sdk android:minSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:name=".Globals"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".RSS_ViewerActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="itpc" />
<data android:scheme="pcast" />
<data android:scheme="feed" />
<data android:scheme="feeds" />
<data android:scheme="rss" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/xml" android:scheme="http" />
<data android:mimeType="application/rss+xml" android:scheme="http" />
<data android:mimeType="application/atom+xml" android:scheme="http" />
<data android:mimeType="text/xml" android:scheme="https" />
<data android:mimeType="application/rss+xml" android:scheme="https" />
<data android:mimeType="application/atom+xml" android:scheme="https" />
</intent-filter>
</activity>
<activity android:name="RSSFeedActivity"></activity>
<activity android:name="com.CertificateAuthentication.Authenticator"></activity>
</application>
感谢。
更新
更多信息,当对话框要求选择和打开链接的应用程序弹出时,它不会显示我的应用程序,或任何相关的事情。
更新
我删除了第二个和第三个intent过滤器,我尝试将剩下的两个intent过滤器合并为1,但是这不会从浏览器加载应用程序。上面的代码就是它现在的样子,并得到与之前相同的结果=(这很烦人,因为这意味着用户可以运行2个应用程序会话,一个来自浏览器,一个来自启动器。
答案 0 :(得分:0)
您的第二个和第三个<intent-filter>
元素可能无效,因为android:host
未记录为支持通配符。
答案 1 :(得分:0)
这里的问题是\
。这是转义字符,因此要使此表达式起作用,您需要\\
。
Documentation clearly says您需要使用\\.
作为点(有\\*
的示例)。
我也同意CommonsWare的回答,我在documentation这样的陈述中找到了:
这些属性中的每一个都是可选的,但它们并不是独立的 彼此:为了使权威有意义,一个计划也必须如此 指定。对于有意义的路径,无论是方案还是权威 必须指定。
The host and port together constitute the URI authority
所以在实践中权威意味着主持人所以你不能忽略它,显然你不能在那里放一颗星。
IMO让你变得复杂,你不需要在这里定义路径! Mime类型应该做的工作。尝试找一些读取RSS的开源项目,看看他们如何定义清单。
我认为你需要这样的东西:
<activity
android:name=".RSS_ViewerActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="itpc" />
<data android:scheme="pcast" />
<data android:scheme="feed" />
<data android:scheme="feeds" />
<data android:scheme="rss" />
<data android:mimeType="text/xml" android:scheme="http" />
<data android:mimeType="application/rss+xml" android:scheme="http" />
<data android:mimeType="application/atom+xml" android:scheme="http" />
<data android:mimeType="text/xml" android:scheme="https" />
<data android:mimeType="application/rss+xml" android:scheme="https" />
<data android:mimeType="application/atom+xml" android:scheme="https" />
</intent-filter>
</activity>