Partager via


ContentProvider.OpenFile Méthode

Définition

Surcharges

OpenFile(Uri, String)

Remplacez cette option pour gérer les demandes d’ouverture d’un objet blob de fichiers.

OpenFile(Uri, String, CancellationSignal)

Remplacez cette option pour gérer les demandes d’ouverture d’un objet blob de fichiers.

OpenFile(Uri, String)

Remplacez cette option pour gérer les demandes d’ouverture d’un objet blob de fichiers.

[Android.Runtime.Register("openFile", "(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;", "GetOpenFile_Landroid_net_Uri_Ljava_lang_String_Handler")]
public virtual Android.OS.ParcelFileDescriptor? OpenFile (Android.Net.Uri uri, string mode);
[<Android.Runtime.Register("openFile", "(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;", "GetOpenFile_Landroid_net_Uri_Ljava_lang_String_Handler")>]
abstract member OpenFile : Android.Net.Uri * string -> Android.OS.ParcelFileDescriptor
override this.OpenFile : Android.Net.Uri * string -> Android.OS.ParcelFileDescriptor

Paramètres

uri
Uri

URI dont le fichier doit être ouvert.

mode
String

Représentation sous forme de chaîne du mode fichier. Peut être « r », « w », « wt », « wa », « rw » ou « rwt ». Notez que l’implémentation exacte de ces éléments peut différer pour chaque implémentation de fournisseur , par exemple, « w » peut ou ne pas tronquer.

Retours

Retourne un nouveau ParcelFileDescriptor que vous pouvez utiliser pour accéder au fichier.

Attributs

Exceptions

Lève FileNotFoundException s’il n’existe aucun fichier associé à l’URI donné ou si le mode n’est pas valide.

Lève SecurityException si l’appelant n’a pas l’autorisation d’accéder au fichier.

Remarques

Remplacez cette option pour gérer les demandes d’ouverture d’un objet blob de fichiers. L’implémentation par défaut lève FileNotFoundExceptiontoujours . Cette méthode peut être appelée à partir de plusieurs threads, comme décrit dans Processus et Threads.

Cette méthode retourne un ParcelFileDescriptor, qui est retourné directement à l’appelant. De cette façon, des données volumineuses (telles que des images et des documents) peuvent être retournées sans copier le contenu.

Le ParcelFileDescriptor retourné appartient à l’appelant. Il incombe donc de le fermer lorsqu’il est terminé. Autrement dit, l’implémentation de cette méthode doit créer un nouveau ParcelFileDescriptor pour chaque appel.

S’il est ouvert avec les modes exclusifs « r » ou « w », le ColisFileDescriptor retourné peut être une paire de canal ou de socket pour activer la diffusion en continu de données. L’ouverture avec les modes « rw » ou « rwt » implique un fichier sur le disque qui prend en charge la recherche.

Si vous devez détecter le moment où le ParcelFileDescriptor retourné a été fermé, ou si le processus distant a bloqué ou rencontré une autre erreur, vous pouvez utiliser ParcelFileDescriptor#open(File, int, android.os.Handler, android.os.ParcelFileDescriptor.OnCloseListener), ParcelFileDescriptor#createReliablePipe()ou ParcelFileDescriptor#createReliableSocketPair().

Si vous devez retourner un fichier volumineux qui n’est pas sauvegardé par un fichier réel sur le disque, tel qu’un fichier sur un partage réseau ou un service de stockage cloud, envisagez d’utiliser StorageManager#openProxyFileDescriptor(int, android.os.ProxyFileDescriptorCallback, android.os.Handler) ce qui vous permettra de diffuser le contenu à la demande.

<p class="remarque">Pour une utilisation dans intentions, vous devez implémenter #getType pour renvoyer le type MIME approprié pour les données retournées ici avec le même URI. Cela permet à la résolution d’intention de déterminer automatiquement le type MIME de données et de sélectionner les cibles correspondantes appropriées dans le cadre de son opération.

<p class="remarque">Pour une meilleure interopérabilité avec d’autres applications, il est recommandé que pour toutes les URI qui peuvent être ouvertes, vous prenez également en charge les requêtes sur celles-ci contenant au moins les colonnes spécifiées par android.provider.OpenableColumns. Vous pouvez également prendre en charge d’autres colonnes courantes si vous avez des métadonnées supplémentaires à fournir, comme android.provider.MediaStore.MediaColumns#DATE_ADDED dans android.provider.MediaStore.MediaColumns.</p>

Documentation Java pour android.content.ContentProvider.openFile(android.net.Uri, java.lang.String).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

Voir aussi

  • <xref:Android.Content.ContentProvider.OpenAssetFile(Android.Net.Uri%2c+System.String)>
  • <xref:Android.Content.ContentProvider.OpenFileHelper(Android.Net.Uri%2c+System.String)>
  • GetType(Uri)
  • ParseMode(String)

S’applique à

OpenFile(Uri, String, CancellationSignal)

Remplacez cette option pour gérer les demandes d’ouverture d’un objet blob de fichiers.

[Android.Runtime.Register("openFile", "(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;", "GetOpenFile_Landroid_net_Uri_Ljava_lang_String_Landroid_os_CancellationSignal_Handler")]
public virtual Android.OS.ParcelFileDescriptor? OpenFile (Android.Net.Uri uri, string mode, Android.OS.CancellationSignal? signal);
[<Android.Runtime.Register("openFile", "(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;", "GetOpenFile_Landroid_net_Uri_Ljava_lang_String_Landroid_os_CancellationSignal_Handler")>]
abstract member OpenFile : Android.Net.Uri * string * Android.OS.CancellationSignal -> Android.OS.ParcelFileDescriptor
override this.OpenFile : Android.Net.Uri * string * Android.OS.CancellationSignal -> Android.OS.ParcelFileDescriptor

Paramètres

uri
Uri

URI dont le fichier doit être ouvert.

mode
String

Représentation sous forme de chaîne du mode fichier. Peut être « r », « w », « wt », « wa », « rw » ou « rwt ». Notez que l’implémentation exacte de ces éléments peut différer pour chaque implémentation de fournisseur , par exemple, « w » peut ou ne pas tronquer.

signal
CancellationSignal

Signal d’annulation de l’opération en cours, ou null s’il n’en a pas. Par exemple, si vous téléchargez un fichier à partir du réseau pour traiter une demande en mode « rw », vous devez régulièrement appeler CancellationSignal#throwIfCanceled() pour vérifier si le client a annulé la demande et abandonner le téléchargement.

Retours

Retourne un nouveau ParcelFileDescriptor que vous pouvez utiliser pour accéder au fichier.

Attributs

Exceptions

Lève FileNotFoundException s’il n’existe aucun fichier associé à l’URI donné ou si le mode n’est pas valide.

Lève SecurityException si l’appelant n’a pas l’autorisation d’accéder au fichier.

Remarques

Remplacez cette option pour gérer les demandes d’ouverture d’un objet blob de fichiers. L’implémentation par défaut lève FileNotFoundExceptiontoujours . Cette méthode peut être appelée à partir de plusieurs threads, comme décrit dans Processus et Threads.

Cette méthode retourne un ParcelFileDescriptor, qui est retourné directement à l’appelant. De cette façon, des données volumineuses (telles que des images et des documents) peuvent être retournées sans copier le contenu.

Le ParcelFileDescriptor retourné appartient à l’appelant. Il incombe donc de le fermer lorsqu’il est terminé. Autrement dit, l’implémentation de cette méthode doit créer un nouveau ParcelFileDescriptor pour chaque appel.

S’il est ouvert avec les modes exclusifs « r » ou « w », le ColisFileDescriptor retourné peut être une paire de canal ou de socket pour activer la diffusion en continu de données. L’ouverture avec les modes « rw » ou « rwt » implique un fichier sur le disque qui prend en charge la recherche.

Si vous devez détecter le moment où le ParcelFileDescriptor retourné a été fermé, ou si le processus distant a bloqué ou rencontré une autre erreur, vous pouvez utiliser ParcelFileDescriptor#open(File, int, android.os.Handler, android.os.ParcelFileDescriptor.OnCloseListener), ParcelFileDescriptor#createReliablePipe()ou ParcelFileDescriptor#createReliableSocketPair().

<p class="remarque">Pour une utilisation dans intentions, vous devez implémenter #getType pour renvoyer le type MIME approprié pour les données retournées ici avec le même URI. Cela permet à la résolution d’intention de déterminer automatiquement le type MIME de données et de sélectionner les cibles correspondantes appropriées dans le cadre de son opération.

<p class="remarque">Pour une meilleure interopérabilité avec d’autres applications, il est recommandé que pour toutes les URI qui peuvent être ouvertes, vous prenez également en charge les requêtes sur celles-ci contenant au moins les colonnes spécifiées par android.provider.OpenableColumns. Vous pouvez également prendre en charge d’autres colonnes courantes si vous avez des métadonnées supplémentaires à fournir, comme android.provider.MediaStore.MediaColumns#DATE_ADDED dans android.provider.MediaStore.MediaColumns.</p>

Documentation Java pour android.content.ContentProvider.openFile(android.net.Uri, java.lang.String, android.os.CancellationSignal).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

Voir aussi

  • <xref:Android.Content.ContentProvider.OpenAssetFile(Android.Net.Uri%2c+System.String)>
  • <xref:Android.Content.ContentProvider.OpenFileHelper(Android.Net.Uri%2c+System.String)>
  • GetType(Uri)
  • ParseMode(String)

S’applique à