- 構文:
<data android:scheme="string" android:host="string" android:port="string" android:path="string" android:pathPattern="string" android:pathPrefix="string" android:mimeType="string" />
- 上位の要素:
<intent-filter>
- 説明:
- インテント フィルタにデータ指定を追加します。データ指定としては、データ型(
mimeType
属性)のみ、URI のみ、あるいはデータ型と URI の両方を対象にすることができます。URI は、部分ごとに別個の属性を使用して指定します。<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>]
URL 形式を指定する各属性は省略可能ですが、相互に依存しています。
- インテント フィルタに対して
scheme
が指定されていない場合、他のすべての URI 属性が無視されます。 - フィルタに対して
host
が指定されていない場合、port
属性およびすべてのパス属性が無視されます。
同一の
<intent-filter>
要素内に格納されている<data>
要素はすべて、同一のフィルタを構成します。たとえば、次のようなフィルタ指定があるとします。<intent-filter . . . > <data android:scheme="something" android:host="project.example.com" /> . . . </intent-filter>
これは、下記のフィルタ指定と同じ意味になります。
<intent-filter . . . > <data android:scheme="something" /> <data android:host="project.example.com" /> . . . </intent-filter>
1 つの
<intent-filter>
内に任意の数の<data>
要素を配置して、複数のデータ オプションを指定することができます。いずれの属性も、デフォルト値は設定されていません。インテント オブジェクトとフィルタのマッチング ルールなど、インテント フィルタの仕組みの詳細については、インテントとインテント フィルタをご覧ください。また、マニフェスト ファイル概要の「インテント フィルタ」セクションもご覧ください。
- インテント フィルタに対して
- 属性:
android:scheme
- URI のスキーマ部分。これは、URI を指定するうえで最小限の必須属性です。フィルタに対して少なくとも 1 つの
scheme
属性を設定する必要があります。この属性を設定していないと、他の URI 属性は意味を持ちません。スキーマを指定する際は、末尾にコロンは付けません(たとえば、
http:
ではなくhttp
)。フィルタに対してデータ型セット(
mimeType
属性)が指定されていて、スキーマが指定されていない場合、content:
スキーマおよびfile:
スキーマが想定されます。注: Android フレームワーク内のスキーマ マッチングの場合、RFC とは異なり、大文字と小文字が区別されます。そのため、スキーマを指定する際は、常に小文字を使用するようにしてください。
android:host
- URI 認証局のホスト部分。フィルタに対して
scheme
属性が指定されていない場合、この属性は意味を持ちません。複数のサブドメインをマッチングさせるには、アスタリスク(*
)を使用して、ホスト内のゼロ個以上の文字がマッチングするようにします。たとえば、ホスト「*.google.com
」の場合、www.google.com
、.google.com
、developer.google.com
がマッチングします。アスタリスクはホスト属性の最初の文字にする必要があります。たとえば、ホスト「
google.co.*
」は、アスタリスク ワイルドカードが最初の文字になっていないため、無効です。注: Android フレームワーク内のホスト名マッチングの場合、正式な RFC とは異なり、大文字と小文字が区別されます。そのため、ホスト名を指定する際は、常に小文字を使用するようにしてください。
android:port
- URI 認証局のポート部分。この属性は、フィルタに対して
scheme
属性とhost
属性が指定されている場合に限り、意味を持ちます。 android:path
android:pathPrefix
android:pathPattern
- URI のパス部分。「/」で始まる必要があります。
path
属性は、インテント オブジェクトの完全パスと一致する完全パスを指定します。pathPrefix
属性は、インテント オブジェクトのパスの最初の部分だけと一致する部分パスを指定します。pathPattern
属性は、インテント オブジェクトの完全パスと一致する完全パスを指定しますが、次のワイルドカードを含めることができます。- アスタリスク(
*
)は、直前の文字がゼロ個以上続くシーケンスに一致します。 - ピリオドの後ろにアスタリスク(
.*
)を続けた場合、ゼロ個以上の文字のシーケンスに一致します。
文字列を XML から読み取る際、パターンとして解析する前に、「
\
」はエスケープ文字として使用されるため、ダブル エスケープする必要があります。たとえば、実際の「*
」は表記上は「\\*
」と記述し、実際の「」は表記上は「\\\\
」と記述します。これは、Java コードで文字列を作成する際に必要となる記述方法と基本的に同じです。3 つのタイプのパターンの詳細については、
PatternMatcher
クラス内のPATTERN_LITERAL
、PATTERN_PREFIX
、PATTERN_SIMPLE_GLOB
をご覧ください。 - アスタリスク(
android:mimeType
- MIME メディアタイプ。たとえば、
image/jpeg
やaudio/mpeg4-generic
などが該当します。サブタイプとして、アスタリスク ワイルドカード(*
)を使用できます。この場合、あらゆるサブタイプがマッチングします。一般的に、インテント フィルタでは、
android:mimeType
属性だけを含む<data>
を宣言します。注: Android フレームワーク内の MIME タイプ マッチングの場合、正式な RFC MIME タイプとは異なり、大文字と小文字が区別されます。そのため、MIME タイプを指定する際は、常に小文字を使用するようにしてください。
- 導入時の API レベル:
- API レベル 1
- 関連項目:
<action>
<category>
Content and code samples on this page are subject to the licenses described in the Content License. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2019-12-27 UTC.