<dati>

sintassi:
<data android:scheme="string"
      android:host="string"
      android:port="string"
      android:path="string"
      android:pathPattern="string"
      android:pathPrefix="string"
      android:pathSuffix="string"
      android:pathAdvancedPattern="string"
      android:mimeType="string" />
contenuto in:
<intent-filter>
description:
Aggiunge una specifica dei dati a un filtro per intent. La specifica è un tipo di dati, utilizzando l'mimeType un URI o entrambi i tipi di dati e un URI. Un URI è specificato da un attributi per ognuna delle sue parti:

<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]

Questi attributi che specificano il formato URI sono facoltativi, ma dipendono anche reciprocamente:

  • Se scheme non è specificato per il filtro per intent, tutti gli altri attributi URI vengono ignorati.
  • Se host non viene specificato per il filtro, l'attributo port e tutti gli attributi del percorso vengono ignorati.

Tutti gli elementi <data> contenuti all'interno dello stesso <intent-filter> elemento contribuisce a lo stesso filtro. Pertanto, ad esempio, la seguente specifica di filtro:

<intent-filter . . . >
    <data android:scheme="something" android:host="project.example.com" />
    ...
</intent-filter>

equivale a questo:

<intent-filter . . . >
    <data android:scheme="something" />
    <data android:host="project.example.com" />
    ...
</intent-filter>

Puoi inserire un numero illimitato di elementi <data> all'interno di un <intent-filter> per assegnare più dati le opzioni di CPU e memoria disponibili. Nessuno dei suoi attributi ha valori predefiniti.

Per informazioni sul funzionamento dei filtri per intent, incluse le regole relative al modo in cui gli oggetti di intent vengono confrontati con i filtri, consulta Intenzioni e i filtri per intent e Filtri per intent nella panoramica del file manifest.

attributi:
android:scheme
La parte dello schema di un URI. Questo è l'attributo minimo essenziale per che specifica un URI. È necessario impostare almeno un attributo scheme per il filtro, oppure nessuno degli altri attributi URI è significativo.

Viene specificato uno schema senza i due punti finali, ad esempio: http anziché http:.

Se il filtro ha un tipo di dati impostato (utilizzando mimeType ) ma nessuno schema, gli schemi content: e file: sono ipotizzato.

Nota: la corrispondenza dello schema nel framework Android è sensibile alle maiuscole, a differenza di RFC. Di conseguenza, specificare sempre gli schemi utilizzando lettere minuscole.

android:host
La parte host di un'autorità URI. Questo attributo è privo di significato a meno che non sia presente un attributo scheme viene specificato anche per il filtro. Per trovare la corrispondenza di più sottodomini, utilizza un asterisco (*) per corrisponde a zero o più caratteri nell'host. Ad esempio, l'host *.google.com corrisponde www.google.com, .google.com e developer.google.com.

L'asterisco deve essere il primo carattere dell'attributo host. Ad esempio, l'host google.co.* non è valido, perché il carattere jolly asterisco non è il primo carattere.

Nota: la corrispondenza del nome host nel framework Android è sensibile alle maiuscole, a differenza della RFC formale. Di conseguenza, specifica sempre utilizzando lettere minuscole.

android:port
La parte della porta di un'autorità URI. Questo attributo è significativo solo se scheme e Gli attributi host sono specificati anche per il filtro.
android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
La parte del percorso di un URI, che deve iniziare con /. L'attributo path specifica un oggetto percorso che viene confrontato con il percorso completo in un oggetto Intent. La L'attributo pathPrefix specifica un percorso parziale a cui viene associata una corrispondenza solo la parte iniziale del percorso nell'oggetto Intent.

La L'attributo pathSuffix viene abbinato esattamente alla parte finale del percorso in Intent e questo attributo non deve necessariamente iniziare con il carattere /. La L'attributo pathPattern specifica un percorso completo che viene confrontato con il percorso completo percorso nell'oggetto Intent, ma può contenere i seguenti caratteri jolly:

  • Un asterisco (*) corrisponde a una sequenza da zero a molte occorrenze di il carattere immediatamente precedente.
  • Un punto seguito da un asterisco (.*) corrisponde a qualsiasi sequenza di da zero a molti caratteri.

L'attributo pathAdvancedPattern specifica un percorso completo che viene confrontato con il percorso completo dell'oggetto Intent e supporta i seguenti pattern simili a regex:

  • Un punto (.) corrisponde a qualsiasi carattere.
  • Un insieme ([...]) corrisponde a intervalli di caratteri. Ad esempio , [0-5] corrisponde a una sola cifra da 0 a 5 ma non da 6 a 9. [a-zA-Z] corrisponde a qualsiasi lettera, indipendentemente dall'uso delle maiuscole/minuscole. I set supportano anche "not" Modificatore ^.
  • Il tasto di modifica asterisco (*) corrisponde al pattern precedente zero o più volte.
  • Il modificatore più (+) corrisponde una o più volte al pattern precedente.
  • Il modificatore di intervallo ({...}) specifica il numero di volte in cui un pattern possono eguagliare.
di Gemini Advanced. Il matcher pathAdvancedPattern è un'implementazione di valutazione in cui viene eseguito in base allo schema in tempo reale senza alcun supporto per il backtracking.

Perché \ viene utilizzato come carattere di escape quando viene letta la stringa da XML, prima che venga analizzato come pattern, è necessario eseguire un doppio escape. Ad esempio, il valore letterale * viene scritto come \\* e un il valore letterale \ è scritto come \\\. Si tratta di quello che scrivi creando la stringa nel codice Java.

Per ulteriori informazioni su questi cinque tipi di pattern, consulta le descrizioni PATTERN_LITERAL, PATTERN_PREFIX, PATTERN_SIMPLE_GLOB, PATTERN_SUFFIX e PATTERN_ADVANCED_GLOB nel PatternMatcher.

Questi attributi sono significativi solo se scheme e host vengono specificati anche gli attributi del filtro.

pathSuffix e pathAdvancedPattern sono state introdotte nel livello API 31.

android:mimeType
Un tipo multimediale MIME, come image/jpeg o audio/mpeg4-generic. Il sottotipo può essere il carattere jolly asterisco (*) per indicare che qualsiasi corrispondenze di sottotipo.

Capita spesso che un filtro per intent dichiari un elemento <data> che include solo l'attributo android:mimeType.

Nota: la corrispondenza del tipo MIME nel framework Android è sensibile alle maiuscole, a differenza dei tipi MIME RFC formali. Di conseguenza, specificare i tipi MIME utilizzando lettere minuscole.

introdotto in:
Livello API 1
vedi anche:
<action>
<category>