ContentProvider.OpenFile Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 FileNotFoundException
sempre . 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 FileNotFoundException
sempre . 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>
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)