Android 将URL与不起作用的意图相匹配

Android 将URL与不起作用的意图相匹配,android,android-intent,Android,Android Intent,我正在编写一个伴随着网站的Android应用程序,我想让该应用程序拦截某些URL。我通过谷歌等网站找到了多个例子,但都不管用。我创造了我的意图: Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://xgn.nl/article/" + String.valueOf(id))); 然后从另一个活动启动它(我是上面的意图) 应接收此信息的活动的意图筛选器为: <activity android:name=".Art

我正在编写一个伴随着网站的Android应用程序,我想让该应用程序拦截某些URL。我通过谷歌等网站找到了多个例子,但都不管用。我创造了我的意图:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://xgn.nl/article/" + String.valueOf(id)));
然后从另一个活动启动它(我是上面的意图)

应接收此信息的活动的意图筛选器为:

<activity android:name=".ArticleActivity" android:theme="@style/XGN.Red">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <data android:scheme="http" android:host="xgn.nl" android:pathPrefix="/article/" android:mimeType="text/*" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>
    </activity>

我还尝试了在过滤器中没有mimeType的情况下使用它。意图解析程序看到筛选器,但抱怨数据与意图中的数据不匹配,并启动浏览器


我做错了什么?

我在发布它5秒钟后就解决了它,问题是您需要指定完全限定的类名才能使它工作:)



编辑:更准确地说,我在logcat中看到的错误是错误的。数据类型确实匹配,但它选择了更可见的浏览器类,而不是延迟定义的活动。指定完整的类名并删除mimeType使这项工作成功。

您能发布您收到的错误吗?我指的是:“意图解析程序看到筛选器,但抱怨数据与意图中的数据不匹配”。抱歉,我回去进行了更多的调试,实际上发现了:)你可以通过一个标志打开IntentResolver调试输出,这在logcat中显示它认为数据不匹配应该是android:pathPrefix=“article”,但我不知道这是否是问题所在……那么,你已经解决了吗?太好了!:)
<activity android:name=".ArticleActivity" android:theme="@style/XGN.Red">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <data android:scheme="http" android:host="xgn.nl" android:pathPrefix="/article/" android:mimeType="text/*" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>
    </activity>
<activity android:name="nl.xgn.ArticleActivity" android:theme="@style/XGN.Red">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="http" android:host="xgn.nl" android:pathPrefix="/article/" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
    </intent-filter>
</activity>