IOnReceiveContentListener.OnReceiveContent(View, ContentInfo) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ricevere il contenuto specificato.
[Android.Runtime.Register("onReceiveContent", "(Landroid/view/View;Landroid/view/ContentInfo;)Landroid/view/ContentInfo;", "GetOnReceiveContent_Landroid_view_View_Landroid_view_ContentInfo_Handler:Android.Views.IOnReceiveContentListenerInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=31)]
public Android.Views.ContentInfo? OnReceiveContent(Android.Views.View view, Android.Views.ContentInfo payload);
[<Android.Runtime.Register("onReceiveContent", "(Landroid/view/View;Landroid/view/ContentInfo;)Landroid/view/ContentInfo;", "GetOnReceiveContent_Landroid_view_View_Landroid_view_ContentInfo_Handler:Android.Views.IOnReceiveContentListenerInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=31)>]
abstract member OnReceiveContent : Android.Views.View * Android.Views.ContentInfo -> Android.Views.ContentInfo
Parametri
- view
- View
Visualizzazione in cui è stato richiesto l'inserimento del contenuto.
- payload
- ContentInfo
Contenuto da inserire e metadati correlati. Il payload può contenere più elementi e i relativi tipi MIME possono essere diversi, ad esempio un elemento immagine e un elemento di testo. Il payload può anche contenere elementi il cui tipo MIME non è incluso nell'elenco dei tipi MIME specificati quando View#setOnReceiveContentListener setting
il listener. Per questi elementi, il listener può rifiutare il contenuto (rinviare al comportamento predefinito della piattaforma) o eseguire un'altra logica di fallback (ad esempio, mostrare un messaggio appropriato all'utente).
Restituisce
Parte del contenuto passato il cui elaborazione deve essere delegata alla piattaforma. Restituisce Null se tutto il contenuto è stato gestito in qualche modo. L'inserimento effettivo del contenuto può essere elaborato in modo asincrono in background e può avere o meno esito positivo anche se questo metodo restituisce Null. Ad esempio, un'app potrebbe non inserire un elemento se supera il limite di dimensioni dell'app per quel tipo di contenuto.
- Attributi
Commenti
Ricevere il contenuto specificato.
Le implementazioni devono gestire qualsiasi elemento di contenuto di interesse e restituire tutti gli elementi non gestiti per mantenere il comportamento predefinito della piattaforma per il contenuto che non dispone di una gestione specifica dell'app. Ad esempio, un'implementazione può fornire la gestione per gli URI del contenuto (per fornire supporto per l'inserimento di immagini e così via) e delegare l'elaborazione del testo alla piattaforma per mantenere il comportamento comune per l'inserimento di testo. Vedere la classe javadoc per un'implementazione di esempio.
<h3>Gestione di contenuti< diversi/h3><ul><li>Text. ContentInfo#getSource() source
Se è ContentInfo#SOURCE_AUTOFILL autofill
, il contenuto della visualizzazione deve essere completamente sostituito dal testo passato. Per le origini diverse dal riempimento automatico, il testo passato deve sovrascrivere la selezione corrente o essere inserito nella posizione corrente del cursore se non è presente alcuna selezione. <li>Contenuto non testuale (ad esempio immagini). Il contenuto può essere inserito inline se il widget lo supporta oppure può essere aggiunto come allegato (potrebbe essere potenzialmente visualizzato in una visualizzazione completamente separata). </ul>
<h3>autorizzazioni< URI/h3>
android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION Read permissions
vengono concesse automaticamente dalla piattaforma per qualsiasi android.content.ContentResolver#SCHEME_CONTENT content URIs
nel payload passato a questo listener. Le autorizzazioni sono temporanee e verranno rilasciate automaticamente dalla piattaforma.
L'elaborazione del contenuto deve essere in genere eseguita in un servizio o in un'attività. Per l'elaborazione a esecuzione prolungata, è consigliabile usare androidx.work.WorkManager
. Quando si implementa questa operazione, le autorizzazioni devono essere estese al servizio o all'attività di destinazione passando il contenuto usando android.content.Intent#setClipData Intent.setClipData
e android.content.Intent#addFlags(int) setting
il flag android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION FLAG_GRANT_READ_URI_PERMISSION
.
In alternativa, se si usa un thread in background all'interno del contesto corrente per elaborare il contenuto, è necessario mantenere un riferimento all'oggetto payload
per assicurarsi che le autorizzazioni non vengano revocate prematuramente.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.