Compartir a través de


IOnReceiveContentListener.OnReceiveContent(View, ContentInfo) Método

Definición

Reciba el contenido especificado.

[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

Parámetros

view
View

Vista donde se solicitó la inserción de contenido.

payload
ContentInfo

Contenido que se va a insertar y metadatos relacionados. La carga puede contener varios elementos y sus tipos MIME pueden ser diferentes (por ejemplo, un elemento de imagen y un elemento de texto). La carga también puede contener elementos cuyo tipo MIME no está en la lista de tipos MIME especificados cuando View#setOnReceiveContentListener setting el agente de escucha. Para esos elementos, el agente de escucha puede rechazar el contenido (aplazar el comportamiento de la plataforma predeterminada) o ejecutar alguna otra lógica de reserva (por ejemplo, mostrar un mensaje adecuado al usuario).

Devoluciones

Parte del contenido pasado cuyo procesamiento debe delegarse en la plataforma. Devuelve null si todo el contenido se controló de alguna manera. La inserción real del contenido se puede procesar de forma asincrónica en segundo plano y puede o no realizarse correctamente incluso si este método devuelve null. Por ejemplo, una aplicación puede acabar sin insertar un elemento si supera el límite de tamaño de la aplicación para ese tipo de contenido.

Atributos

Comentarios

Reciba el contenido especificado.

Las implementaciones deben controlar cualquier elemento de contenido de interés y devolver todos los elementos no controlado para conservar el comportamiento predeterminado de la plataforma para el contenido que no tiene control específico de la aplicación. Por ejemplo, una implementación puede proporcionar control para los URI de contenido (para proporcionar compatibilidad con la inserción de imágenes, etc.) y delegar el procesamiento de texto en la plataforma para conservar el comportamiento común para insertar texto. Consulte la clase javadoc para obtener una implementación de ejemplo.

<h3>Control de contenido diferente</h3><ul><li>Text. ContentInfo#getSource() source Si es ContentInfo#SOURCE_AUTOFILL autofill, el contenido de la vista debe reemplazarse por completo por el texto pasado. En el caso de los orígenes que no sean autorrellenar, el texto pasado debe sobrescribir la selección actual o insertarse en la posición del cursor actual si no hay ninguna selección. <li>Contenido sin texto (por ejemplo, imágenes). El contenido se puede insertar en línea si el widget lo admite o se puede agregar como datos adjuntos (podría mostrarse potencialmente en una vista completamente independiente). </ul>

<permisos de URI< h3>/h3>

android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION Read permissions la plataforma concede automáticamente a cualquiera android.content.ContentResolver#SCHEME_CONTENT content URIs de las cargas que se pasan a este agente de escucha. Los permisos son transitorios y la plataforma lo liberará automáticamente.

Normalmente, el procesamiento del contenido debe realizarse en un servicio o actividad. Para el procesamiento de larga duración, se recomienda usar androidx.work.WorkManager . Al implementar esto, los permisos se deben extender al servicio o actividad de destino pasando el contenido mediante android.content.Intent#setClipData Intent.setClipData y android.content.Intent#addFlags(int) setting la marca android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION FLAG_GRANT_READ_URI_PERMISSION.

Como alternativa, si se usa un subproceso en segundo plano dentro del contexto actual para procesar el contenido, se debe mantener una referencia al payload objeto para asegurarse de que los permisos no se revoquen prematuramente.

Documentación de Java para android.view.OnReceiveContentListener.onReceiveContent(android.view.View, android.view.ContentInfo).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a