IOnReceiveContentListener.OnReceiveContent(View, ContentInfo) 方法

定义

接收给定的内容。

[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

参数

view
View

请求内容插入的视图。

payload
ContentInfo

要插入的内容和相关元数据。 有效负载可能包含多个项,其 MIME 类型可能不同(例如图像项和文本项)。 有效负载还可能包含 MIME 类型不在侦听器指定的 View#setOnReceiveContentListener setting MIME 类型列表中的项目。 对于这些项,侦听器可能会拒绝内容(延迟默认平台行为)或执行其他一些回退逻辑(例如向用户显示适当的消息)。

返回

应将其处理委托给平台的传入内容部分。 如果以某种方式处理了所有内容,则返回 null。 实际插入内容可能在后台异步处理,即使此方法返回 null,也可能不成功。 例如,如果应用超出该类型的应用的大小限制,则应用最终可能不会插入项。

属性

注解

接收给定的内容。

实现应处理任何感兴趣的内容项并返回所有未经处理的项,以保留没有特定于应用处理的内容的默认平台行为。 例如,实现可能提供内容 URI 的处理(为支持插入图像等),并将文本处理委托给平台,以保留插入文本的常见行为。 有关示例实现,请参阅类 javadoc。

<h3>处理不同内容</h3><ul><li>Text。 ContentInfo#getSource() sourceContentInfo#SOURCE_AUTOFILL autofill如果是,视图的内容应完全替换为传入的文本。 对于非自动填充的源,传入的文本应覆盖当前选定内容,或者在没有选择的情况下插入当前光标位置。 <li>非文本内容(例如图像)。 如果小组件支持此内容,也可以将其作为附件添加(可能以完全独立的视图显示),则内容可以内联插入。 </ul>

<h3>URI 权限</h3>

android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION Read permissions 由平台 android.content.ContentResolver#SCHEME_CONTENT content URIs 自动授予传递给此侦听器的有效负载中的任何内容。 权限是暂时性的,由平台自动释放。

通常应在服务或活动中处理内容。 对于长时间运行的处理,建议使用 androidx.work.WorkManager 。 实现此目的时,应通过传递内容并使用android.content.Intent#setClipData Intent.setClipDataandroid.content.Intent#addFlags(int) setting标志android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION FLAG_GRANT_READ_URI_PERMISSION将权限扩展到目标服务或活动。

或者,如果在当前上下文中使用后台线程来处理内容,则应维护对 payload 对象的引用,以确保不会过早撤销权限。

适用于 . 的 android.view.OnReceiveContentListener.onReceiveContent(android.view.View, android.view.ContentInfo)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于