将<data>标签添加到行动中的Intent-Filter不被尊重</data>

时间:2012-11-01 01:36:45

标签: android android-manifest

我搜索了文档,但是我遗漏了一些明显的东西。或者我正在尝试向后做某事。

我所拥有的主要活动是从发射器和小部件发射的。我有一个第二个活动,我想在尝试打开特定模式的URL时被解雇。以下是两个活动定义:

<activity android:name=".activities.MainMapScreen" android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity android:name=".activities.ViewDatasheet" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name" android:process=":BMMapsDatasheet">
    <meta-data android:name="Main Screen" android:value=".activities.MainMapScreen" />
    <intent-filter>
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="http" android:host="www.ngs.noaa.gov" android:pathPattern="\\/cgi-bin\\/ds_mark.prl\\?PidBox\\=([a-zA-Z]{2}[0-9]{4})" />
    </intent-filter>
</activity>

如上所述,url不会被截获。即使我在数据中没有任何内容,只有方案和主机,我也没有得到选择我的应用程序的提示。

作为测试,我复制了可浏览和主要活动,当我这样做时,图标完全从发射器中消失。 (尝试点击网址时,我仍然没有提示。

我找到的所有例子都有主要活动,而不是辅助活动,所以..我不确定我是否遗漏了一些旗帜等。

任何想法都将不胜感激。如果你想让我发布整个Manifest,请告诉我。

- 麦克

修改:添加@iturki建议后,没有任何变化。但是 - 如果我<category android:name="android.intent.category.OPENABLE" />添加到处理网址的操作中,那就有效了。我看到的所有示例都没有该类别,所以我还不确定它是否会影响我的应用程序中的活动的其他操作。

1 个答案:

答案 0 :(得分:0)

尝试将VIEW action添加到您的第二个活动<intent-filter>

<action android:name="android.intent.action.VIEW"></action> 

我认为您可能也希望将您的意图添加到DEFAULT category

<category android:name="android.intent.category.DEFAULT"></category>

我不确定它是否重要,但所有<intent-filter>都有此类别。