- 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'attributoport
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.
- Se
- 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 schemicontent:
efile:
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
corrispondewww.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, 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 attributihost
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'attributopath
specifica un oggetto percorso che viene confrontato con il percorso completo in un oggettoIntent
. La L'attributopathPrefix
specifica un percorso parziale a cui viene associata una corrispondenza solo la parte iniziale del percorso nell'oggettoIntent
.La L'attributo
pathSuffix
viene abbinato esattamente alla parte finale del percorso inIntent
e questo attributo non deve necessariamente iniziare con il carattere/
. La L'attributopathPattern
specifica un percorso completo che viene confrontato con il percorso completo percorso nell'oggettoIntent
, 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'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 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.
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
ePATTERN_ADVANCED_GLOB
nelPatternMatcher
.Questi attributi sono significativi solo se
scheme
ehost
vengono specificati anche gli attributi del filtro.pathSuffix
epathAdvancedPattern
sono state introdotte nel livello API 31. - Un asterisco (
android:mimeType
- Un tipo multimediale MIME, come
image/jpeg
oaudio/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'attributoandroid: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>
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-08-22 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2024-08-22 UTC."],[],[]]