ContentProvider.OpenAssetFile Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| Name | Beschreibung |
|---|---|
| OpenAssetFile(Uri, String) |
Dies ist wie |
| OpenAssetFile(Uri, String, CancellationSignal) |
Dies ist wie |
OpenAssetFile(Uri, String)
Dies ist wie #openFile, aber kann von Anbietern implementiert werden, die in der Lage sein müssen, Unterabschnitte von Dateien zurückzugeben, häufig Ressourcen innerhalb ihrer .
[Android.Runtime.Register("openAssetFile", "(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;", "GetOpenAssetFile_Landroid_net_Uri_Ljava_lang_String_Handler")]
public virtual Android.Content.Res.AssetFileDescriptor? OpenAssetFile(Android.Net.Uri uri, string mode);
[<Android.Runtime.Register("openAssetFile", "(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;", "GetOpenAssetFile_Landroid_net_Uri_Ljava_lang_String_Handler")>]
abstract member OpenAssetFile : Android.Net.Uri * string -> Android.Content.Res.AssetFileDescriptor
override this.OpenAssetFile : Android.Net.Uri * string -> Android.Content.Res.AssetFileDescriptor
Parameter
- uri
- Uri
Der URI, dessen Datei geöffnet werden soll.
- mode
- String
Die Zeichenfolgendarstellung des Dateimodus. Kann "r", "w", "wt", "wa", "rw" oder "rwt" sein. Bitte beachten Sie, dass sich die genaue Implementierung für jede Anbieterimplementierung unterscheiden kann – z. B. "w" kann oder nicht abgeschnitten werden.
Gibt zurück
Gibt einen neuen AssetFileDescriptor zurück, den Sie für den Zugriff auf die Datei verwenden können.
- Attribute
Ausnahmen
Löst FileNotFoundException aus, wenn dem angegebenen URI keine Datei zugeordnet ist oder der Modus ungültig ist.
Löst SecurityException aus, wenn der Aufrufer nicht über die Berechtigung zum Zugriff auf die Datei verfügt.
Hinweise
Dies ist wie #openFile, kann aber von Anbietern implementiert werden, die in der Lage sein müssen, Unterabschnitte von Dateien zurückzugeben, häufig Ressourcen innerhalb ihrer .apk. Diese Methode kann von mehreren Threads aufgerufen werden, wie in Prozessen und Threads beschrieben.
Wenn Sie dies implementieren, müssen Ihre Clients in der Lage sein, solche Dateisegmente entweder direkt mit ContentResolver#openAssetFileDescriptoroder mithilfe der höheren Ebene ContentResolver#openInputStream ContentResolver.openInputStream oder ContentResolver#openOutputStream ContentResolver.openOutputStream methoden zu behandeln.
Der zurückgegebene AssetFileDescriptor kann ein Pipe- oder Socketpaar sein, um das Streamen von Daten zu ermöglichen.
Wenn Sie dies implementieren, um eine vollständige Datei zurückzugeben, sollten Sie den AssetFileDescriptor AssetFileDescriptor#UNKNOWN_LENGTH so erstellen, dass er mit Anwendungen kompatibel ist, die keine Unterabschnitte von Dateien verarbeiten können.
Für die Verwendung in Intents möchten Sie implementieren #getType , um den entsprechenden MIME-Typ für die hier zurückgegebenen Daten mit demselben URI zurückzugeben. Dadurch kann die Absichtsauflösung automatisch den MIME-Datentyp ermitteln und die entsprechenden übereinstimmenden Ziele als Teil des Vorgangs auswählen.
Für eine bessere Interoperabilität mit anderen Anwendungen wird empfohlen, dass Sie für alle URIs, die geöffnet werden können, auch Abfragen unterstützen, die mindestens die durch android.provider.OpenableColumnsdie angegebenen Spalten enthalten.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Siehe auch
- <xref:Android.Content.ContentProvider.OpenFile(Android.Net.Uri%2c+System.String)>
- <xref:Android.Content.ContentProvider.OpenFileHelper(Android.Net.Uri%2c+System.String)>
- GetType(Uri)
Gilt für:
OpenAssetFile(Uri, String, CancellationSignal)
Dies ist wie #openFile, aber kann von Anbietern implementiert werden, die in der Lage sein müssen, Unterabschnitte von Dateien zurückzugeben, häufig Ressourcen innerhalb ihrer .
[Android.Runtime.Register("openAssetFile", "(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;", "GetOpenAssetFile_Landroid_net_Uri_Ljava_lang_String_Landroid_os_CancellationSignal_Handler")]
public virtual Android.Content.Res.AssetFileDescriptor? OpenAssetFile(Android.Net.Uri uri, string mode, Android.OS.CancellationSignal? signal);
[<Android.Runtime.Register("openAssetFile", "(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;", "GetOpenAssetFile_Landroid_net_Uri_Ljava_lang_String_Landroid_os_CancellationSignal_Handler")>]
abstract member OpenAssetFile : Android.Net.Uri * string * Android.OS.CancellationSignal -> Android.Content.Res.AssetFileDescriptor
override this.OpenAssetFile : Android.Net.Uri * string * Android.OS.CancellationSignal -> Android.Content.Res.AssetFileDescriptor
Parameter
- uri
- Uri
Der URI, dessen Datei geöffnet werden soll.
- mode
- String
Die Zeichenfolgendarstellung des Dateimodus. Kann "r", "w", "wt", "wa", "rw" oder "rwt" sein. Bitte beachten Sie, dass sich die genaue Implementierung für jede Anbieterimplementierung unterscheiden kann – z. B. "w" kann oder nicht abgeschnitten werden.
- signal
- CancellationSignal
Ein Signal zum Abbrechen des laufenden Vorgangs oder null wenn keines. Wenn Sie z. B. eine Datei aus dem Netzwerk herunterladen, um eine "rw"-Modusanforderung zu warten, sollten Sie regelmäßig aufrufen CancellationSignal#throwIfCanceled() , um zu überprüfen, ob der Client die Anforderung abgebrochen und den Download abgebrochen hat.
Gibt zurück
Gibt einen neuen AssetFileDescriptor zurück, den Sie für den Zugriff auf die Datei verwenden können.
- Attribute
Ausnahmen
Löst FileNotFoundException aus, wenn dem angegebenen URI keine Datei zugeordnet ist oder der Modus ungültig ist.
Löst SecurityException aus, wenn der Aufrufer nicht über die Berechtigung zum Zugriff auf die Datei verfügt.
Hinweise
Dies ist wie #openFile, kann aber von Anbietern implementiert werden, die in der Lage sein müssen, Unterabschnitte von Dateien zurückzugeben, häufig Ressourcen innerhalb ihrer .apk. Diese Methode kann von mehreren Threads aufgerufen werden, wie in Prozessen und Threads beschrieben.
Wenn Sie dies implementieren, müssen Ihre Clients in der Lage sein, solche Dateisegmente entweder direkt mit ContentResolver#openAssetFileDescriptoroder mithilfe der höheren Ebene ContentResolver#openInputStream ContentResolver.openInputStream oder ContentResolver#openOutputStream ContentResolver.openOutputStream methoden zu behandeln.
Der zurückgegebene AssetFileDescriptor kann ein Pipe- oder Socketpaar sein, um das Streamen von Daten zu ermöglichen.
Wenn Sie dies implementieren, um eine vollständige Datei zurückzugeben, sollten Sie den AssetFileDescriptor AssetFileDescriptor#UNKNOWN_LENGTH so erstellen, dass er mit Anwendungen kompatibel ist, die keine Unterabschnitte von Dateien verarbeiten können.
Für die Verwendung in Intents möchten Sie implementieren #getType , um den entsprechenden MIME-Typ für die hier zurückgegebenen Daten mit demselben URI zurückzugeben. Dadurch kann die Absichtsauflösung automatisch den MIME-Datentyp ermitteln und die entsprechenden übereinstimmenden Ziele als Teil des Vorgangs auswählen.
Für eine bessere Interoperabilität mit anderen Anwendungen wird empfohlen, dass Sie für alle URIs, die geöffnet werden können, auch Abfragen unterstützen, die mindestens die durch android.provider.OpenableColumnsdie angegebenen Spalten enthalten.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Siehe auch
- <xref:Android.Content.ContentProvider.OpenFile(Android.Net.Uri%2c+System.String)>
- <xref:Android.Content.ContentProvider.OpenFileHelper(Android.Net.Uri%2c+System.String)>
- GetType(Uri)