ContentProvider.OpenFile Método

Definição

Sobrecargas

Nome Description
OpenFile(Uri, String)

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

OpenFile(Uri, String, CancellationSignal)

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

OpenFile(Uri, String)

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

[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 delas pode ser diferente para cada implementação do Provedor, por exemplo, "w" pode ou não truncar.

Retornos

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

Atributos

Exceções

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

Gerará 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 arquivos. A implementação padrão sempre é gerada FileNotFoundException. Esse método pode ser chamado de vários threads, conforme descrito em Processos e Threads.

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

O ParcelFileDescriptor retornado pertence ao chamador, portanto, é responsabilidade deles fechá-lo quando terminar. 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 habilitar o streaming de dados. Abrir com os modos "rw" ou "rwt" implica um arquivo no disco que dá suporte à busca.

Se você precisar detectar quando o ParcelFileDescriptor retornado tiver sido fechado ou se o processo remoto tiver falhado ou encontrado algum outro erro, você poderá 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 seja apoiado por um arquivo real em 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.

Para uso em Intenções, 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.

Para uma melhor interoperabilidade com outros aplicativos, é recomendável que, para qualquer URIs que possa ser aberta, você também dê suporte a consultas neles contendo pelo menos as colunas especificadas por android.provider.OpenableColumns. Talvez você também queira dar suporte a outras colunas comuns se tiver metadados adicionais para fornecer, como android.provider.MediaStore.MediaColumns#DATE_ADDED em android.provider.MediaStore.MediaColumns.

Java documentação 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 Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

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 arquivos.

[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 delas pode ser diferente para cada implementação do Provedor, por exemplo, "w" pode ou não truncar.

signal
CancellationSignal

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

Retornos

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

Atributos

Exceções

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

Gerará 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 arquivos. A implementação padrão sempre é gerada FileNotFoundException. Esse método pode ser chamado de vários threads, conforme descrito em Processos e Threads.

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

O ParcelFileDescriptor retornado pertence ao chamador, portanto, é responsabilidade deles fechá-lo quando terminar. 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 habilitar o streaming de dados. Abrir com os modos "rw" ou "rwt" implica um arquivo no disco que dá suporte à busca.

Se você precisar detectar quando o ParcelFileDescriptor retornado tiver sido fechado ou se o processo remoto tiver falhado ou encontrado algum outro erro, você poderá usar ParcelFileDescriptor#open(File, int, android.os.Handler, android.os.ParcelFileDescriptor.OnCloseListener), ParcelFileDescriptor#createReliablePipe()ou ParcelFileDescriptor#createReliableSocketPair().

Para uso em Intenções, 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.

Para uma melhor interoperabilidade com outros aplicativos, é recomendável que, para qualquer URIs que possa ser aberta, você também dê suporte a consultas neles contendo pelo menos as colunas especificadas por android.provider.OpenableColumns. Talvez você também queira dar suporte a outras colunas comuns se tiver metadados adicionais para fornecer, como android.provider.MediaStore.MediaColumns#DATE_ADDED em android.provider.MediaStore.MediaColumns.

Java documentação 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 Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

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