我试图为一个简单的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个”意图过滤器“时,为什么应用程序启动器图标会在第二种情况下消失。
答案 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>