2014-01-20 74 views
0

我的應用程序具有一個包含以下意圖過濾器的活動。僅用於打開瀏覽器的意圖過濾器android

<intent-filter> 
      <action android:name="android.intent.action.VIEW"></action> 
      <category android:name="android.intent.category.DEFAULT"></category> 
      <category android:name="android.intent.category.BROWSABLE"></category> 
      <data android:host="m.testsite.com"> </data> 
      <data android:scheme="http"></data> 
      <data android:pathPattern=".*"></data> 
</intent-filter> 

這會打開應用程序中的url http://m.testsite.com/anypath的任何鏈接。然而,有時恰恰相反,應用程序內部沒有關於路徑的數據,我只需要將其傳回瀏覽器。

這應該是什麼意圖過濾器?

編輯: - 像我的問題似乎不是很清楚。該設備有兩個包傾聽同一個意圖過濾器。一個是瀏覽器,另一個是我的應用程序。我處於一種情況,在某些情況下,我只需要定位瀏覽器,而不是針對同一個意圖過濾器的應用程序。我希望能有一些特定的行動或類別,我可以單獨針對瀏覽器。不過,我設法解決它。我已經把我的答案放在下面。

+1

究竟什麼是你的問題?意圖打開瀏覽器?或者如何更改pathPattern以確保它只捕獲「有效」的URL? – fifarunnerr

+0

我只想定位瀏覽器,而不是我自己的應用程序相同的網址 – Rasmus

+1

我仍然不明白。你想要一個更新的pathPattern,所以一些URL不會去你的應用程序,但只能在瀏覽器上?那樣的話,我們需要更多的信息。目前哪些網址不需要存在於意圖過濾器中? – fifarunnerr

回答

1

這是我如何解決它最後: -

for (ResolveInfo resolveInfo : list) { 
    if (!activityName.contains("MyApplicationActivity")) { 
        browserIntent = 
          packageManager.getLaunchIntentForPackage(resolveInfo.activityInfo.packageName); 
        ComponentName comp = 
          new ComponentName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name); 

        browserIntent.setAction(Intent.ACTION_VIEW); 

        browserIntent.setComponent(comp); 
        browserIntent.setData(data); 
        startActivity(browserIntent); 
        break; 
       }}