ContentProvider.OpenAssetFile Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
| Nome | Description |
|---|---|
| OpenAssetFile(Uri, String) |
Isso é semelhante |
| OpenAssetFile(Uri, String, CancellationSignal) |
Isso é semelhante |
OpenAssetFile(Uri, String)
Isso é semelhante #openFile, mas pode ser implementado por provedores que precisam ser capazes de retornar subsseções de arquivos, muitas vezes ativos dentro de seus .
[Android.Runtime.Register("openAssetFile", "(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;", "GetOpenAssetFile_Landroid_net_Uri_Ljava_lang_String_Handler")]
public virtual Android.Content.Res.AssetFileDescriptor? OpenAssetFile(Android.Net.Uri uri, string mode);
[<Android.Runtime.Register("openAssetFile", "(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;", "GetOpenAssetFile_Landroid_net_Uri_Ljava_lang_String_Handler")>]
abstract member OpenAssetFile : Android.Net.Uri * string -> Android.Content.Res.AssetFileDescriptor
override this.OpenAssetFile : Android.Net.Uri * string -> Android.Content.Res.AssetFileDescriptor
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 AssetFileDescriptor 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
Isso é semelhante #openFile, mas pode ser implementado por provedores que precisam ser capazes de retornar subsseções de arquivos, muitas vezes ativos dentro de seus .apk. Esse método pode ser chamado de vários threads, conforme descrito em Processos e Threads.
Se você implementar isso, seus clientes deverão ser capazes de lidar com essas fatias de arquivo, diretamente com ContentResolver#openAssetFileDescriptorou usando os métodos de ContentResolver#openInputStream ContentResolver.openInputStream nível ContentResolver#openOutputStream ContentResolver.openOutputStream superior.
O AssetFileDescriptor retornado pode ser um par de pipes ou soquetes para habilitar o streaming de dados.
Se você estiver implementando isso para retornar um arquivo completo, deverá criar o AssetFileDescriptor para ser compatível com AssetFileDescriptor#UNKNOWN_LENGTH aplicativos que não podem lidar com subsseções de arquivos.
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.
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.OpenFile(Android.Net.Uri%2c+System.String)>
- <xref:Android.Content.ContentProvider.OpenFileHelper(Android.Net.Uri%2c+System.String)>
- GetType(Uri)
Aplica-se a
OpenAssetFile(Uri, String, CancellationSignal)
Isso é semelhante #openFile, mas pode ser implementado por provedores que precisam ser capazes de retornar subsseções de arquivos, muitas vezes ativos dentro de seus .
[Android.Runtime.Register("openAssetFile", "(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;", "GetOpenAssetFile_Landroid_net_Uri_Ljava_lang_String_Landroid_os_CancellationSignal_Handler")]
public virtual Android.Content.Res.AssetFileDescriptor? OpenAssetFile(Android.Net.Uri uri, string mode, Android.OS.CancellationSignal? signal);
[<Android.Runtime.Register("openAssetFile", "(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;", "GetOpenAssetFile_Landroid_net_Uri_Ljava_lang_String_Landroid_os_CancellationSignal_Handler")>]
abstract member OpenAssetFile : Android.Net.Uri * string * Android.OS.CancellationSignal -> Android.Content.Res.AssetFileDescriptor
override this.OpenAssetFile : Android.Net.Uri * string * Android.OS.CancellationSignal -> Android.Content.Res.AssetFileDescriptor
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 AssetFileDescriptor 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
Isso é semelhante #openFile, mas pode ser implementado por provedores que precisam ser capazes de retornar subsseções de arquivos, muitas vezes ativos dentro de seus .apk. Esse método pode ser chamado de vários threads, conforme descrito em Processos e Threads.
Se você implementar isso, seus clientes deverão ser capazes de lidar com essas fatias de arquivo, diretamente com ContentResolver#openAssetFileDescriptorou usando os métodos de ContentResolver#openInputStream ContentResolver.openInputStream nível ContentResolver#openOutputStream ContentResolver.openOutputStream superior.
O AssetFileDescriptor retornado pode ser um par de pipes ou soquetes para habilitar o streaming de dados.
Se você estiver implementando isso para retornar um arquivo completo, deverá criar o AssetFileDescriptor para ser compatível com AssetFileDescriptor#UNKNOWN_LENGTH aplicativos que não podem lidar com subsseções de arquivos.
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.
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.OpenFile(Android.Net.Uri%2c+System.String)>
- <xref:Android.Content.ContentProvider.OpenFileHelper(Android.Net.Uri%2c+System.String)>
- GetType(Uri)