IOnReceiveContentListener.OnReceiveContent(View, ContentInfo) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Receba o conteúdo fornecido.
[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
A exibição onde a inserção de conteúdo foi solicitada.
- payload
- ContentInfo
O conteúdo a ser inserido e metadados relacionados. A carga útil pode conter vários itens e seus tipos MIME podem ser diferentes (por exemplo, um item de imagem e um item de texto). A carga também pode conter itens cujo tipo MIME não está na lista de tipos MIME especificados quando View#setOnReceiveContentListener setting
o ouvinte. Para esses itens, o ouvinte pode rejeitar o conteúdo (adiar para o comportamento padrão da plataforma) ou executar alguma outra lógica de fallback (por exemplo, mostrar uma mensagem apropriada ao usuário).
Retornos
A parte do conteúdo repassado cujo processamento deve ser delegado à plataforma. Retorne null se todo o conteúdo foi manipulado de alguma forma. A inserção real do conteúdo pode ser processada de forma assíncrona em segundo plano e pode ou não ter êxito mesmo se esse método retornar null. Por exemplo, um aplicativo pode acabar não inserindo um item se exceder o limite de tamanho do aplicativo para esse tipo de conteúdo.
- Atributos
Comentários
Receba o conteúdo fornecido.
As implementações devem manipular quaisquer itens de conteúdo de interesse e retornar todos os itens não manipulados para preservar o comportamento padrão da plataforma para conteúdo que não tenha tratamento específico do aplicativo. Por exemplo, uma implementação pode fornecer manipulação para URIs de conteúdo (para fornecer suporte para inserir imagens, etc.) e delegar o processamento de texto à plataforma para preservar o comportamento comum para inserir texto. Consulte a classe javadoc para obter uma implementação de exemplo.
<h3>Manipulação de conteúdo< diferente/h3><ul><li>Texto. Se o ContentInfo#getSource() source
for ContentInfo#SOURCE_AUTOFILL autofill
, o conteúdo do modo de exibição deve ser totalmente substituído pelo texto transmitido. Para fontes diferentes do preenchimento automático, o texto passado deve substituir a seleção atual ou ser inserido na posição atual do cursor se não houver seleção. <li>Conteúdo não textual (por exemplo, imagens). O conteúdo pode ser inserido embutido se o widget suportar isso, ou pode ser adicionado como um anexo (poderia ser mostrado em uma exibição completamente separada). </ul>
<h3>Permissões< de URI/h3>
android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION Read permissions
são concedidos automaticamente pela plataforma para qualquer android.content.ContentResolver#SCHEME_CONTENT content URIs
na carga útil passada para este ouvinte. As permissões são transitórias e serão liberadas automaticamente pela plataforma.
O processamento de conteúdo normalmente deve ser feito em um serviço ou atividade. Para processamento de longa duração, o uso androidx.work.WorkManager
é recomendado. Ao implementar isso, as permissões devem ser estendidas ao serviço ou atividade de destino, passando o conteúdo usando android.content.Intent#setClipData Intent.setClipData
e android.content.Intent#addFlags(int) setting
o sinalizador android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION FLAG_GRANT_READ_URI_PERMISSION
.
Como alternativa, se estiver usando um thread em segundo plano no contexto atual para processar o conteúdo, uma referência ao objeto deverá ser mantida para garantir que as payload
permissões não sejam revogadas prematuramente.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.