2012-03-18 3 views
9

をのみ、特定のURLをフィルタリングするために、私は特定のURLをフィルタリングする:*どのようにインテントフィルタと

http://gaapa.cz/mobile/

しかし、このフィルタは、すべてのURLに発射される - ehtaのそれと間違っていますか?

<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="gaapa.cz" 
       android:path="/mobile/.*" 
       android:scheme="http" /> 
</intent-filter> 

答えて

10

<data android:host="gaapa.cz" 
     android:path="mobile" 
     android:pathPattern="*" 
     android:scheme="http" /> 
+1

私のインテントフィルタの1つにホストがないためパスが無視されました – Hurda

+0

次のURLのフィルタを作成するとどうなりますか: http://gaapa.cz/#/aaa pathPrefixまたはpathPatternを次のように変更しようとしました。 "/#/ *"または "#/"は動作しませんでした。 – gaara87

+0

ハッシュは予約文字です。 URLで使用したい場合は、それをエンコードする必要があります(%23)。 –

1

これは動作するはずです:あなたは、によると、

http://developer.android.com/guide/topics/manifest/data-element.html#path 

を、パスを使用pathPrefix、またはpathPatternするかたい

<data android:host="gaapa.cz" 
     android:pathprefix="mobile/" 
     android:scheme="http" /> 
+0

Hmm ... android:path = "mobile"は先行する "/"を必要とするため動作しません。例:android:path = "/ mobile" –

2

はこれを試してみてくださいあなたの場合、e ither pathPatternまたはpathPrefixは、

pathPattern="mobile/*" 

または

pathPrefix="mobile" 

に動作しますが、あなたのフィルタは、すべてのURIに一致される理由を説明しません。パスは "*"を理解していないので、一致するはずはありません。私はあなたのコードのどこか他の場所に何かが追加されている/見つからないと思っています。

関連する問題