- 構文:
- 
        <uri-relative-filter-group android:allow=["true" | "false"]> <data ... /> ... </uri-relative-filter-group> 
- 上位の要素:
- 
        <intent-filter>
- 含めることのできる要素:
- 
        <data>
- 説明:
- URI クエリ パラメータと URI フラグメントを含めることができる正確な Intent照合ルールを作成します。ルールは、android:allow属性に応じて、包含(許可)ルールまたは除外(ブロック)ルールにできます。一致ルールは、含まれる<data>要素のpath*、fragment*、query*属性で指定します。マッチング問題 URI を照合するには、URI 相対フィルタ グループの各部分が URI の一部と一致している必要があります。URI の一部は、URI 相対フィルタ グループで指定されていない場合があります。以下に例を示します。 <intent-filter...> <data android:scheme="https" android:host="project.example.com" /> <uri-relative-filter-group android:allow="true"> <data android:query="param1=value1" /> <data android:query="param2=value2" /> </uri-relative-filter-group> ... </intent-filter> URI 相対フィルタ グループで指定されたものがすべて存在するため、フィルタは https://project.example.com/any/path/here?param1=value1¶m2=value2¶m3=value3に一致します。クエリ パラメータの順序は重要ではないため、このフィルタはhttps://project.example.com/any/path/here?param2=value2¶m1=value1にも一致します。ただし、フィルタはhttps://project.example.com/any/path/here?param1=value1と一致しません。param2=value2が欠落しています。「または」と「かつ」 <uri-relative-filter-group>の外側にある<data>タグは OR 演算で結合され、<uri-relative-filter-group>内の<data>タグは AND 演算で結合されます。次に例を示します。 <intent-filter...> <data android:scheme="https" android:host="project.example.com" /> <data android:pathPrefix="/prefix" /> <data android:pathSuffix="suffix" /> ... </intent-filter> このフィルタは、 /prefixで始まるかsuffixで終わるパスに一致します。一方、次の例では、 /prefixで始まりsuffixで終わるパスが照合されます。<intent-filter...> <data android:scheme="https" android:host="project.example.com" /> <uri-relative-filter-group> <data android:pathPrefix="/prefix" /> <data android:pathSuffix="suffix" /> </uri-relative-filter-group> ... </intent-filter> そのため、同じ <uri-relative-filter-group>内の複数のpath属性は何も一致しません。<intent-filter...> <data android:scheme="https" android:host="project.example.com" /> <uri-relative-filter-group> <data android:path="/path1" /> <data android:path="/path2" /> </uri-relative-filter-group> ... </intent-filter> 申告順序 次の例を考えてみましょう。 <intent-filter...> <data android:scheme="https" android:host="project.example.com" /> <uri-relative-filter-group> <data android:fragment="fragment" /> </uri-relative-filter-group> <uri-relative-filter-group android:allow="false"> <data android:fragmentPrefix="fragment" /> </uri-relative-filter-group> ... </intent-filter> 除外ルールが評価される前に一致が見つかったため、フィルタはフラグメント #fragmentと一致しますが、#fragment123などのフラグメントとは一致しません。兄弟タグ <uri-relative-filter-group>タグは、兄弟の<data>タグ(<uri-relative-filter-group>の外部にありますが、同じ<intent-filter>内にある<data>タグ)と連携して動作します。URI 属性は<intent-filter>レベルで相互に依存しているため、<uri-relative-filter-group>タグが適切に機能するには、兄弟の<data>タグが必要です。- インテント フィルタに対して schemeが指定されていない場合、他のすべての URI 属性が無視されます。
- フィルタに対して hostが指定されていない場合、port属性とすべてのpath*属性が無視されます。
 <intent-filter>の<data>子要素は、<uri-relative-filter-group>タグよりも先に評価されます。次に、<uri-relative-filter-group>タグが順番に評価されます。たとえば、次のようになります。<intent-filter...> <data android:scheme="https" android:host="project.example.com" /> <uri-relative-filter-group android:allow="false"> <data android:path="/path" /> <data android:query="query" /> </uri-relative-filter-group> <data android:path="/path" /> ... </intent-filter> https://project.example.com/path?queryは<data android:path="/path" />と一致するため、フィルタで受け入れられます。<data android:path="/path" />は<uri-relative-filter-group>除外ルールの範囲外です。一般的なユースケース たとえば、URI https://project.example.com/pathがあり、クエリ パラメータの有無や値に応じてIntentと照合するとします。https://project.example.com/pathに一致し、https://project.example.com/path?queryをブロックするインテント フィルタを作成するには、次のような方法があります。<intent-filter...> <data android:scheme="https" android:host="project.example.com" /> <uri-relative-filter-group android:allow="true"> <data android:path="/path" /> </uri-relative-filter-group> ... </intent-filter> 実際には、これは機能しません。 https://project.example.com/path?queryURI はパス/pathと一致し、<uri-relative-filter-group>タグは一致時に余分な部分を許可します。次のようにインテント フィルタを修正します。 <intent-filter...> <data android:scheme="https" android:host="project.example.com" /> <uri-relative-filter-group android:allow="false"> <data android:path="/path" /> <data android:queryAdvancedPattern=".+" /> </uri-relative-filter-group> <uri-relative-filter-group android:allow="true"> <data android:path="/path" /> </uri-relative-filter-group> ... </intent-filter> このフィルタが機能するのは、空でないクエリ パラメータを禁止するブロックルールが最初に評価されるためです。 コードを簡素化するために、クエリ パラメータを許可し、クエリ パラメータのない URI をブロックするように動作を反転します。 <intent-filter...> <data android:scheme="https" android:host="project.example.com" /> <uri-relative-filter-group android:allow="true"> <data android:path="/path" /> <data android:queryAdvancedPattern=".+" /> </uri-relative-filter-group> ... </intent-filter> URI エンコードされた文字 URI でエンコードされた文字を含む URI を照合するには、エンコードされていない元の文字をフィルタに記述します。次に例を示します。 <intent-filter...> <data android:scheme="https" android:host="project.example.com" /> <uri-relative-filter-group android:allow="true"> <data android:query="param=value!" /> </uri-relative-filter-group> ... </intent-filter> このフィルタは、 ?param=value!と?param=value%21に一致します。ただし、次のようにエンコードされた文字をフィルタに記述すると、 <intent-filter...> <data android:scheme="https" android:host="project.example.com" /> <uri-relative-filter-group android:allow="true"> <data android:query="param=value%21" /> </uri-relative-filter-group> ... </intent-filter> フィルタは ?param=value!にも?param=value%21にも一致しません。要素数 <intent-filter>内に任意の数の<uri-relative-filter-group>要素を配置できます。参考情報 インテント オブジェクトとフィルタのマッチング ルールなど、インテント フィルタの仕組みの詳細については、インテントとインテント フィルタとインテント フィルタをご覧ください。 <uri-relative-filter-group>の詳細については、UriRelativeFilterGroupとUriRelativeFilterをご覧ください。
- インテント フィルタに対して 
- 属性:
- 導入時の API レベル:
- API レベル 35
- 関連項目:
- 
        <intent-filter><data>
      <uri-relative-filter-group>
  
  
  このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
  
  
    
      [[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-07-27 UTC。"],[],[]]
    
  
            
          