Partilhar via


ContentProvider.OpenFile Método

Definição

Sobrecargas

OpenFile(Uri, String)

Substitua isso para manipular solicitações para abrir um blob de arquivo.

OpenFile(Uri, String, CancellationSignal)

Substitua isso para manipular solicitações para abrir um blob de arquivo.

OpenFile(Uri, String)

Substitua isso para manipular solicitações para abrir um blob de arquivo.

[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

Parâmetros

uri
Uri

O URI cujo arquivo deve ser aberto.

mode
String

A representação de cadeia de caracteres do modo de arquivo. Pode ser "r", "w", "wt", "wa", "rw" ou "rwt". Observe que a implementação exata deles pode diferir para cada implementação do Provedor - por exemplo, "w" pode ou não trucar.

Retornos

Retorna um novo ParcelFileDescriptor que você pode usar para acessar o arquivo.

Atributos

Exceções

Lança FileNotFoundException se não houver nenhum arquivo associado ao URI fornecido ou se o modo for inválido.

Lança SecurityException se o chamador não tiver permissão para acessar o arquivo.

Comentários

Substitua isso para manipular solicitações para abrir um blob de arquivo. A implementação padrão sempre lança FileNotFoundExceptiono . Esse método pode ser chamado de vários threads, conforme descrito em Processes and Threads.

Esse método retorna um ParcelFileDescriptor, que é retornado diretamente para o chamador. Dessa forma, dados grandes (como imagens e documentos) podem ser retornados sem copiar o conteúdo.

O ParcelFileDescriptor retornado é de propriedade do chamador, portanto, é sua responsabilidade fechá-lo quando concluído. Ou seja, a implementação desse método deve criar um novo ParcelFileDescriptor para cada chamada.

Se aberto com os modos exclusivos "r" ou "w", o ParcelFileDescriptor retornado pode ser um par de pipes ou soquetes para permitir o streaming de dados. Abrir com os modos "rw" ou "rwt" implica um arquivo no disco que suporta busca.

Se você precisar detectar quando o ParcelFileDescriptor retornado foi fechado, ou se o processo remoto falhou ou encontrou algum outro erro, você pode usar ParcelFileDescriptor#open(File, int, android.os.Handler, android.os.ParcelFileDescriptor.OnCloseListener), ParcelFileDescriptor#createReliablePipe()ou ParcelFileDescriptor#createReliableSocketPair().

Se você precisar retornar um arquivo grande que não tenha suporte de um arquivo real no disco, como um arquivo em um compartilhamento de rede ou serviço de armazenamento em nuvem, considere usar StorageManager#openProxyFileDescriptor(int, android.os.ProxyFileDescriptorCallback, android.os.Handler) o que permitirá que você transmita o conteúdo sob demanda.

<p class="note">Para uso em Intents, você desejará implementar #getType para retornar o tipo MIME apropriado para os dados retornados aqui com o mesmo URI. Isso permitirá que a resolução de intenção determine automaticamente o tipo MIME de dados e selecione os destinos correspondentes apropriados como parte de sua operação.

<p class="note">Para uma melhor interoperabilidade com outros aplicativos, é recomendável que, para quaisquer URIs que possam ser abertos, você também ofereça suporte a consultas neles contendo pelo menos as colunas especificadas pelo android.provider.OpenableColumns. Você também pode oferecer suporte a outras colunas comuns se tiver metadados adicionais para fornecer, como android.provider.MediaStore.MediaColumns#DATE_ADDED no android.provider.MediaStore.MediaColumns.</p>

Documentação Java para android.content.ContentProvider.openFile(android.net.Uri, java.lang.String).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Confira também

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

Aplica-se a

OpenFile(Uri, String, CancellationSignal)

Substitua isso para manipular solicitações para abrir um blob de arquivo.

[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

Parâmetros

uri
Uri

O URI cujo arquivo deve ser aberto.

mode
String

A representação de cadeia de caracteres do modo de arquivo. Pode ser "r", "w", "wt", "wa", "rw" ou "rwt". Observe que a implementação exata deles pode diferir para cada implementação do Provedor - por exemplo, "w" pode ou não trucar.

signal
CancellationSignal

Um sinal para cancelar a operação em andamento, ou null se nenhum. Por exemplo, se você estiver baixando um arquivo da rede para atender a uma solicitação no modo "rw", ligue periodicamente CancellationSignal#throwIfCanceled() para verificar se o cliente cancelou a solicitação e abortará o download.

Retornos

Retorna um novo ParcelFileDescriptor que você pode usar para acessar o arquivo.

Atributos

Exceções

Lança FileNotFoundException se não houver nenhum arquivo associado ao URI fornecido ou se o modo for inválido.

Lança SecurityException se o chamador não tiver permissão para acessar o arquivo.

Comentários

Substitua isso para manipular solicitações para abrir um blob de arquivo. A implementação padrão sempre lança FileNotFoundExceptiono . Esse método pode ser chamado de vários threads, conforme descrito em Processes and Threads.

Esse método retorna um ParcelFileDescriptor, que é retornado diretamente para o chamador. Dessa forma, dados grandes (como imagens e documentos) podem ser retornados sem copiar o conteúdo.

O ParcelFileDescriptor retornado é de propriedade do chamador, portanto, é sua responsabilidade fechá-lo quando concluído. Ou seja, a implementação desse método deve criar um novo ParcelFileDescriptor para cada chamada.

Se aberto com os modos exclusivos "r" ou "w", o ParcelFileDescriptor retornado pode ser um par de pipes ou soquetes para permitir o streaming de dados. Abrir com os modos "rw" ou "rwt" implica um arquivo no disco que suporta busca.

Se você precisar detectar quando o ParcelFileDescriptor retornado foi fechado, ou se o processo remoto falhou ou encontrou algum outro erro, você pode usar ParcelFileDescriptor#open(File, int, android.os.Handler, android.os.ParcelFileDescriptor.OnCloseListener), ParcelFileDescriptor#createReliablePipe()ou ParcelFileDescriptor#createReliableSocketPair().

<p class="note">Para uso em Intents, você desejará implementar #getType para retornar o tipo MIME apropriado para os dados retornados aqui com o mesmo URI. Isso permitirá que a resolução de intenção determine automaticamente o tipo MIME de dados e selecione os destinos correspondentes apropriados como parte de sua operação.

<p class="note">Para uma melhor interoperabilidade com outros aplicativos, é recomendável que, para quaisquer URIs que possam ser abertos, você também ofereça suporte a consultas neles contendo pelo menos as colunas especificadas pelo android.provider.OpenableColumns. Você também pode oferecer suporte a outras colunas comuns se tiver metadados adicionais para fornecer, como android.provider.MediaStore.MediaColumns#DATE_ADDED no android.provider.MediaStore.MediaColumns.</p>

Documentação Java para android.content.ContentProvider.openFile(android.net.Uri, java.lang.String, android.os.CancellationSignal).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Confira também

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

Aplica-se a