Freigeben über


IOnReceiveContentListener.OnReceiveContent(View, ContentInfo) Methode

Definition

Empfangen sie den angegebenen Inhalt.

[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

Parameter

view
View

Die Ansicht, in der die Inhaltseinfügung angefordert wurde.

payload
ContentInfo

Der Inhalt, der eingefügt werden soll, und zugehörige Metadaten. Die Nutzlast kann mehrere Elemente enthalten, und ihre MIME-Typen können unterschiedlich sein (z. B. ein Bildelement und ein Textelement). Die Nutzlast kann auch Elemente enthalten, deren MIME-Typ nicht in der Liste der MIME-Typen enthalten ist, die beim View#setOnReceiveContentListener setting Listener angegeben sind. Bei diesen Elementen kann der Listener den Inhalt ablehnen (auf das Standardverhalten der Plattform zurückstellen) oder eine andere Fallbacklogik ausführen (z. B. dem Benutzer eine entsprechende Nachricht anzeigen).

Gibt zurück

Der Teil der übergebenen Inhalte, deren Verarbeitung an die Plattform delegiert werden soll. Gibt NULL zurück, wenn alle Inhalte auf irgendeine Weise behandelt wurden. Die tatsächliche Einfügung des Inhalts wird möglicherweise asynchron im Hintergrund verarbeitet und kann auch dann erfolgreich ausgeführt werden, wenn diese Methode NULL zurückgibt. Eine App kann z. B. kein Element einfügen, wenn sie den Größengrenzwert der App für diesen Inhaltstyp überschreitet.

Attribute

Hinweise

Empfangen sie den angegebenen Inhalt.

Implementierungen sollten alle interessanten Inhaltselemente behandeln und alle unbehandelten Elemente zurückgeben, um das Standardverhalten der Plattform für Inhalte beizubehalten, die keine appspezifische Behandlung aufweisen. Eine Implementierung kann z. B. die Verarbeitung von Inhalts-URIs (zur Unterstützung des Einfügens von Bildern usw.) bereitstellen und die Verarbeitung von Text an die Plattform delegieren, um das allgemeine Verhalten für das Einfügen von Text beizubehalten. Eine Beispielimplementierung finden Sie im Klassen-Javadoc.

<h3>Behandeln unterschiedlicher Inhalte</h3><ul><li>Text. Ist dies der ContentInfo#getSource() sourceContentInfo#SOURCE_AUTOFILL autofillGrund, sollte der Inhalt der Ansicht vollständig durch den übergebenen Text ersetzt werden. Bei anderen Quellen als dem automatischen Ausfüllen sollte der übergebene Text die aktuelle Markierung überschreiben oder an der aktuellen Cursorposition eingefügt werden, wenn keine Auswahl vorhanden ist. <li>Nicht-Text-Inhalt (z. B. Bilder). Der Inhalt kann inline eingefügt werden, wenn das Widget dies unterstützt, oder er kann als Anlage hinzugefügt werden (kann möglicherweise in einer vollständig separaten Ansicht angezeigt werden). </ul>

<h3>URI-Berechtigungen</h3>

android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION Read permissions wird automatisch von der Plattform für alle android.content.ContentResolver#SCHEME_CONTENT content URIs an diesen Listener übergebenen Nutzlasten gewährt. Berechtigungen sind vorübergehend und werden automatisch von der Plattform freigegeben.

Die Verarbeitung von Inhalten sollte normalerweise in einem Dienst oder einer Aktivität erfolgen. Für eine lange Verarbeitung wird die Verwendung androidx.work.WorkManager empfohlen. Bei der Implementierung sollten Berechtigungen auf den Zieldienst oder die Zielaktivität erweitert werden, indem der Inhalt mithilfe android.content.Intent#setClipData Intent.setClipData und android.content.Intent#addFlags(int) setting das Flag android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION FLAG_GRANT_READ_URI_PERMISSIONübergeben wird.

Alternativ sollte bei Verwendung eines Hintergrundthreads innerhalb des aktuellen Kontexts zum Verarbeiten des Inhalts ein Verweis auf das payload Objekt beibehalten werden, um sicherzustellen, dass Berechtigungen nicht vorzeitig widerrufen werden.

Java-Dokumentation für android.view.OnReceiveContentListener.onReceiveContent(android.view.View, android.view.ContentInfo).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: