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#addFlags(int) setting
旗標 android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION FLAG_GRANT_READ_URI_PERMISSION
傳遞內容android.content.Intent#setClipData Intent.setClipData
。
或者,如果在目前內容中使用背景線程來處理內容,則應維護對象的參考 payload
,以確保許可權不會過早撤銷。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。