Condividi tramite


IOnReceiveContentListener.OnReceiveContent(View, ContentInfo) Metodo

Definizione

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.

Documentazione java per android.view.OnReceiveContentListener.onReceiveContent(android.view.View, android.view.ContentInfo).

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.

Si applica a