Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

<data>

構文:
<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.comdeveloper.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_LITERALPATTERN_PREFIXPATTERN_SIMPLE_GLOB をご覧ください。

上記の属性は、フィルタに対して scheme 属性と host 属性が指定されている場合に限り、意味を持ちます。

android:mimeType
MIME メディアタイプ。たとえば、image/jpegaudio/mpeg4-generic などが該当します。サブタイプとして、アスタリスク ワイルドカード(*)を使用できます。この場合、あらゆるサブタイプがマッチングします。

一般的に、インテント フィルタでは、android:mimeType 属性だけを含む <data> を宣言します。

: Android フレームワーク内の MIME タイプ マッチングの場合、正式な RFC MIME タイプとは異なり、大文字と小文字が区別されます。そのため、MIME タイプを指定する際は、常に小文字を使用するようにしてください。

導入時の API レベル:
API レベル 1
関連項目:
<action>
<category>