应用启动器图标从屏幕上消失

时间:2014-02-18 05:02:02

标签: android android-intent

我试图为一个简单的app设置intent过滤器来处理url。我将“intent-filter”的基本标签应用为“action”,“category”。

这里我使用了2个“intent-filter”标签。

<activity
        android:name=".MyBrowserActivity"
        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" />
           <data android:scheme="http" />
           <category android:name="android.intent.category.BROWSABLE"/>
           <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
</activity>

但如果我只在1“intent-filter”标签中应用如下所示的意图过滤器,则安装后不会显示Launcher图标。

<activity
        android:name=".MyBrowserActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <action android:name="android.intent.action.VIEW" />
            <data android:scheme="http" />
            <category android:name="android.intent.category.BROWSABLE"/>
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
</activity>

我想问的主要问题是“当只有1个”意图过滤器“时,为什么应用程序启动器图标会在第二种情况下消失。

3 个答案:

答案 0 :(得分:17)

您需要将intent过滤器拆分为两个。你有

<INTENT FILTER>
Action category 
</INTENT FILTER>
<INTENT FILTER>
Action category data
</INTENT FILTER>

答案 1 :(得分:1)

intent-filter分成两个活动:

    <activity
        android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

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

            <data
                android:host="main"
                android:scheme="example" />
        </intent-filter>
    </activity>
    <activity
        android:name=".SplashActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

答案 2 :(得分:0)

如@praneetloke所述,只是将其分为不同的<intent-filter>组。 我觉得它缺少一个例子,所以就去了。希望对您有所帮助。

<activity android:name=".activities.RegisterActivity" android:launchMode="singleTask">
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
  <intent-filter  android:autoVerify="true">
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:host="path365.page.link" android:scheme="https"/>
    <data android:host="path365.page.link" android:scheme="http"/>
  </intent-filter>
</activity>
相关问题