<dati>

syntax:
Se il tag dati è il figlio diretto di un <intent-filter>:
<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" />

Se il tag dati è il figlio diretto di un <uri-relative-filter-group>:
<data
      android:path="string"
      android:pathPattern="string"
      android:pathPrefix="string"
      android:pathSuffix="string"
      android:pathAdvancedPattern="string"
      android:fragment="string"
      android:fragmentPattern="string"
      android:fragmentPrefix="string"
      android:fragmentSuffix="string"
      android:fragmentAdvancedPattern="string"
      android:query="string"
      android:queryPattern="string"
      android:queryPrefix="string"
      android:querySuffix="string"
      android:queryAdvancedPattern="string" />
contenuti in:
<intent-filter>
<uri-relative-filter-group>
description:
Aggiunge una specifica dei dati a un filtro per intent. La specifica è un tipo di dati, che utilizza l'attributo mimeType, un URI o entrambi. Un URI è specificato da attributi distinti per ciascuna delle sue parti:

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

Questi attributi che specificano il formato dell'URI sono facoltativi, ma anche reciprocamente dipendenti:

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

Tutti gli elementi <data> contenuti nello stesso elemento <intent-filter> contribuiscono allo stesso filtro. Ad esempio, la seguente specifica del filtro:

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

è equivalente a questa:

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

Puoi inserire un numero qualsiasi di elementi <data> all'interno di un <intent-filter> per fornire più opzioni di dati. Nessuno dei suoi attributi ha valori predefiniti.

Per informazioni sul funzionamento dei filtri di intent, incluse le regole per l'associazione degli oggetti intent ai filtri, consulta Intent e filtri di intent e la sezione Filtri di intent nella panoramica del file manifest.

attributes:
android:scheme
La parte dello schema di un URI. Si tratta dell'attributo essenziale minimo per specificare un URI. Per il filtro deve essere impostato almeno un attributo scheme, altrimenti nessuno degli altri attributi URI è significativo.

Uno schema viene specificato senza i due punti finali, ad esempio http anziché http:.

Se il filtro ha un tipo di dati impostato (utilizzando l'attributo mimeType), ma non uno schema, si presumeno gli schemi content: e file:.

Nota: la corrispondenza dello schema nel framework Android è sensibile alle maiuscole, diversamente dall'RFC. Di conseguenza, specifica sempre gli schemi utilizzando lettere minuscole.

android:host
La parte host di un'autorità URI. Questo attributo non ha significato se non viene specificato anche un attributo scheme per il filtro. Per trovare corrispondenze con più sottodomini, utilizza un asterisco (*) per trovare corrispondenze con zero o più caratteri nell'host. Ad esempio, l'host *.google.com corrisponde a 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, diversamente dall'RFC formale. Di conseguenza, specifica sempre i nomi host utilizzando lettere minuscole.

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

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

  • Un asterisco (*) corrisponde a una sequenza da zero a più occorrenze del carattere immediatamente precedente.
  • Un punto seguito da un asterisco (.*) corrisponde a qualsiasi sequenza di zero o più 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 singola cifra da 0 a 5, ma non da 6 a 9. [a-zA-Z] corrisponde a qualsiasi lettera, indipendentemente dalle maiuscole. I set supportano anche il modificatore "not" ^.
  • Il modificatore asterisco (*) corrisponde al pattern precedente zero o più volte.
  • Il modificatore Più (+) corrisponde al pattern precedente una o più volte.
  • Il modificatore intervallo ({...}) specifica il numero di volte in cui un pattern può corrispondere.
Il correlatore pathAdvancedPattern è un'implementazione di valutazione in cui la corrispondenza viene eseguita rispetto al pattern in tempo reale senza supporto del backtracking.

Poiché \ viene utilizzato come carattere di escape quando la stringa viene letta da XML, prima che venga analizzata come pattern, devi eseguire un doppio escape. Ad esempio, un valore letterale * viene scritto come \\* e un valore letterale \ viene scritto come \\\. È simile a ciò che scrivi quando costruisci la stringa nel codice Java.

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

Questi attributi hanno un significato solo se vengono specificati anche gli attributi scheme e host per il filtro.

pathSuffix e pathAdvancedPattern sono stati introdotti nel livello API 31.

android:fragment
android:fragmentPrefix
android:fragmentSuffix
android:fragmentPattern
android:fragmentAdvancedPattern

Un'espressione di corrispondenza per un frammento URI. Non includere il prefisso #. Consulta la sezione precedente per conoscere il significato e gli schemi consentiti in ogni attributo.

Per trovare una corrispondenza con i caratteri in genere codificati per l'URI, includi la forma non elaborata (non codificata) nel valore dell'attributo. Ad esempio, <data android:fragment="test!" /> corrisponde a #test! e #test%21.

Introdotto nel livello API 35.

android:query
android:queryPrefix
android:querySuffix
android:queryPattern
android:queryAdvancedPattern

Un'espressione di corrispondenza per un parametro di query URI (e, facoltativamente, un valore). Ad esempio, puoi associare gli URI che terminano con ?param=value a <data android:query="param=value" />. Non includere il prefisso ?. Consulta la sezione precedente per il significato e gli schemi consentiti in ciascun attributo.

Per trovare una corrispondenza con i caratteri in genere codificati in URI, includi la forma non elaborata (non codificata) nel valore dell'attributo. Ad esempio, <data android:query="test!" /> corrisponde a ?test! e ?test%21.

Introdotto nel livello API 35.

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

È comune che un filtro per intent dichiari un elemento <data> che includa solo l'attributo android:mimeType.

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

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