- syntax:
- Se il tag dati è il tag secondario immediato 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 primo figlio 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'attributoport
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.
- Se per il filtro intent non viene specificato un valore
- 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 schemicontent:
efile:
.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 awww.google.com
,.google.com
edeveloper.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
ehost
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'attributopath
specifica un percorso completo che viene confrontato con il percorso completo in un oggettoIntent
. L'attributopathPrefix
specifica un percorso parziale che viene confrontato solo con la parte iniziale del percorso nell'oggettoIntent
.L'attributo
pathSuffix
corrisponde esattamente alla parte finale del percorso nell'oggettoIntent
e non deve iniziare con il carattere/
. L'attributopathPattern
specifica un percorso completo che viene confrontato con il percorso completo nell'oggettoIntent
, 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'oggettoIntent
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.
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
ePATTERN_ADVANCED_GLOB
nella classePatternMatcher
.Questi attributi hanno un significato solo se vengono specificati anche gli attributi
scheme
ehost
per il filtro.pathSuffix
epathAdvancedPattern
sono stati introdotti nel livello API 31. - Un asterisco (
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
oaudio/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'attributoandroid: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>
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2024-12-21 UTC.
[null,null,["Ultimo aggiornamento 2024-12-21 UTC."],[],[]]