IOnReceiveContentListener.OnReceiveContent(View, ContentInfo) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
接收给定的内容。
[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() source
ContentInfo#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.setClipData
android.content.Intent#addFlags(int) setting
标志android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION FLAG_GRANT_READ_URI_PERMISSION
将权限扩展到目标服务或活动。
或者,如果在当前上下文中使用后台线程来处理内容,则应维护对 payload
对象的引用,以确保不会过早撤销权限。
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。