Condividi tramite


ContentProvider.OpenFile Metodo

Definizione

Overload

OpenFile(Uri, String)

Eseguire l'override di questa opzione per gestire le richieste per aprire un BLOB di file.

OpenFile(Uri, String, CancellationSignal)

Eseguire l'override di questa opzione per gestire le richieste per aprire un BLOB di file.

OpenFile(Uri, String)

Eseguire l'override di questa opzione per gestire le richieste per aprire un BLOB di file.

[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

Parametri

uri
Uri

URI di cui aprire il file.

mode
String

Rappresentazione di stringa della modalità file. Può essere "r", "w", "wt", "wa", "rw" o "rwt". Si noti che l'implementazione esatta di questi può differire per ogni implementazione del provider, ad esempio "w" può o non troncare.

Restituisce

Restituisce un nuovo ParcelFileDescriptor che è possibile utilizzare per accedere al file.

Attributi

Eccezioni

Genera FileNotFoundException se non è presente alcun file associato all'URI specificato o la modalità non è valida.

Genera SecurityException se il chiamante non dispone dell'autorizzazione per accedere al file.

Commenti

Eseguire l'override di questa opzione per gestire le richieste per aprire un BLOB di file. L'implementazione predefinita genera FileNotFoundExceptionsempre . Questo metodo può essere chiamato da più thread, come descritto in Processi e thread.

Questo metodo restituisce un ParcelFileDescriptor, che viene restituito direttamente al chiamante. In questo modo è possibile restituire dati di grandi dimensioni, ad esempio immagini e documenti, senza copiare il contenuto.

Il parcelFileDescriptor restituito è di proprietà del chiamante, quindi è responsabilità del chiamante chiuderlo al termine. Ovvero, l'implementazione di questo metodo deve creare un nuovo ParcelFileDescriptor per ogni chiamata.

Se aperto con le modalità esclusive "r" o "w", il ParcelFileDescriptor restituito può essere una coppia pipe o socket per abilitare lo streaming dei dati. L'apertura con le modalità "rw" o "rwt" implica un file su disco che supporta la ricerca.

Se è necessario rilevare quando il ParcelFileDescriptor restituito è stato chiuso o se il processo remoto si è arrestato in modo anomalo o si è verificato un altro errore, è possibile usare ParcelFileDescriptor#open(File, int, android.os.Handler, android.os.ParcelFileDescriptor.OnCloseListener), ParcelFileDescriptor#createReliablePipe()o ParcelFileDescriptor#createReliableSocketPair().

Se è necessario restituire un file di grandi dimensioni che non è supportato da un file reale su disco, ad esempio un file in una condivisione di rete o un servizio di archiviazione cloud, è consigliabile usare StorageManager#openProxyFileDescriptor(int, android.os.ProxyFileDescriptorCallback, android.os.Handler) che consente di trasmettere il contenuto su richiesta.

<p class="note">Per l'uso in Intents, è necessario implementare #getType per restituire il tipo MIME appropriato per i dati restituiti qui con lo stesso URI. In questo modo, la risoluzione delle finalità determinerà automaticamente il tipo MIME di dati e selezionerà le destinazioni corrispondenti appropriate come parte dell'operazione.

<p class="note">Per migliorare l'interoperabilità con altre applicazioni, è consigliabile che per qualsiasi URI che sia possibile aprire, è inoltre possibile supportare query su di esse contenenti almeno le colonne specificate da android.provider.OpenableColumns. È anche possibile supportare altre colonne comuni se si dispone di metadati aggiuntivi da fornire, ad esempio android.provider.MediaStore.MediaColumns#DATE_ADDED in android.provider.MediaStore.MediaColumns.</p>

Documentazione java per android.content.ContentProvider.openFile(android.net.Uri, java.lang.String).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Vedi anche

  • <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)

Si applica a

OpenFile(Uri, String, CancellationSignal)

Eseguire l'override di questa opzione per gestire le richieste per aprire un BLOB di file.

[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

Parametri

uri
Uri

URI di cui aprire il file.

mode
String

Rappresentazione di stringa della modalità file. Può essere "r", "w", "wt", "wa", "rw" o "rwt". Si noti che l'implementazione esatta di questi può differire per ogni implementazione del provider, ad esempio "w" può o non troncare.

signal
CancellationSignal

Segnale per annullare l'operazione in corso o null in caso contrario. Ad esempio, se si scarica un file dalla rete per gestire una richiesta in modalità "rw", è necessario chiamare CancellationSignal#throwIfCanceled() periodicamente per verificare se il client ha annullato la richiesta e interrompere il download.

Restituisce

Restituisce un nuovo ParcelFileDescriptor che è possibile utilizzare per accedere al file.

Attributi

Eccezioni

Genera FileNotFoundException se non è presente alcun file associato all'URI specificato o la modalità non è valida.

Genera SecurityException se il chiamante non dispone dell'autorizzazione per accedere al file.

Commenti

Eseguire l'override di questa opzione per gestire le richieste per aprire un BLOB di file. L'implementazione predefinita genera FileNotFoundExceptionsempre . Questo metodo può essere chiamato da più thread, come descritto in Processi e thread.

Questo metodo restituisce un ParcelFileDescriptor, che viene restituito direttamente al chiamante. In questo modo è possibile restituire dati di grandi dimensioni, ad esempio immagini e documenti, senza copiare il contenuto.

Il parcelFileDescriptor restituito è di proprietà del chiamante, quindi è responsabilità del chiamante chiuderlo al termine. Ovvero, l'implementazione di questo metodo deve creare un nuovo ParcelFileDescriptor per ogni chiamata.

Se aperto con le modalità esclusive "r" o "w", il ParcelFileDescriptor restituito può essere una coppia pipe o socket per abilitare lo streaming dei dati. L'apertura con le modalità "rw" o "rwt" implica un file su disco che supporta la ricerca.

Se è necessario rilevare quando il ParcelFileDescriptor restituito è stato chiuso o se il processo remoto si è arrestato in modo anomalo o si è verificato un altro errore, è possibile usare ParcelFileDescriptor#open(File, int, android.os.Handler, android.os.ParcelFileDescriptor.OnCloseListener), ParcelFileDescriptor#createReliablePipe()o ParcelFileDescriptor#createReliableSocketPair().

<p class="note">Per l'uso in Intents, è necessario implementare #getType per restituire il tipo MIME appropriato per i dati restituiti qui con lo stesso URI. In questo modo, la risoluzione delle finalità determinerà automaticamente il tipo MIME di dati e selezionerà le destinazioni corrispondenti appropriate come parte dell'operazione.

<p class="note">Per migliorare l'interoperabilità con altre applicazioni, è consigliabile che per qualsiasi URI che sia possibile aprire, è inoltre possibile supportare query su di esse contenenti almeno le colonne specificate da android.provider.OpenableColumns. È anche possibile supportare altre colonne comuni se si dispone di metadati aggiuntivi da fornire, ad esempio android.provider.MediaStore.MediaColumns#DATE_ADDED in android.provider.MediaStore.MediaColumns.</p>

Documentazione java per android.content.ContentProvider.openFile(android.net.Uri, java.lang.String, android.os.CancellationSignal).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Vedi anche

  • <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)

Si applica a