Cursos / Informática para Internet / Dispositivos Móveis / Aula

arrow_back Aula 10 - Resources, Arquivos e Sharedpreferences

Arquivos - pt.2

Armazenar informações com um dos métodos vistos, é a garantia de que os arquivos ficarão na memória interna do aparelho do usuário e de que eles possam ser removidos a qualquer momento, caso o usuário limpe os dados da aplicação.

Outra abordagem que pode ser utilizada é o uso de cache. Ao utilizar o armazenamento em forma de cache, o Android pode fazer a remoção das informações, quando o sistema necessitar de espaço. Sua implementação pode ser feita muito semelhante à mostrada na Listagem 3, tendo como única diferença a chamada do método getCacheDir() no lugar de getFilesDir(). Dessa forma, qualquer arquivo armazenado utilizando essa estrutura, será tratado como arquivo de cache.

As formas que vimos até agora usam a memória interna do aparelho, mas podemos, também, guardar os arquivos, sejam de cache ou não, no chamado armazenamento externo do aparelho (pode ser um dispositivo fisicamente externo como um cartão SD ou mesmo uma região de armazenamento interna não removível). Nesse caso, os arquivos criados não serão removidos pelo Android automaticamente, nem mesmo quando a aplicação for desinstalada, quando o usuário limpar os dados da aplicação, ou mesmo quando o Android precisar de mais espaço de armazenamento.

Como o armazenamento externo pode se tratar de um tipo removível de mídia, uma das preocupações que devemos ter, antes de trabalhar com os arquivos, é verificar se a mídia é acessível no aparelho e se é possível realizar a escrita de dados, se esse for o caso. Para tal verificação, basta seguirmos o modelo apresentado na Listagem 5.

Listagem 5 - Verificação de disponibilidade e acesso do armazenamento externo

Seguindo essa forma mostrada, após a execução desse bloco de código, as variáveis mExternalStorageAvailable e mExternalStorageWriteable terão seus valores verdadeiros apenas se o armazenamento externo estiver disponível no momento e for possível realizar a escrita de arquivos nele, respectivamente.

Tendo esses dados em mãos, então, podemos prosseguir com a inserção de arquivos de acordo com os valores definidos para as duas variáveis de controle.

Listagem 6 - Adicionando arquivos na estrutura de armazenamento externa

Conforme mostrado na Listagem 6, a estrutura utilizada ainda se assemelha bastante à mostrada na Listagem 3, com diferença apenas na criação do arquivo, uma vez que aqui é chamado o método getExternalFilesDir. Sobre esse método, é importante ressaltar o uso de seu parâmetro, que indica o tipo de subdiretório que queremos acessar, e seus valores, definidos como constantes da classe android.os.Environment (alguns exemplos são: DIRECTORY_MUSIC para acesso direto à pasta de músicas, DIRECTORY_PICTURES para acessar a pasta de fotos e assim por diante). No caso do exemplo mostrado na Listagem 6, foi passado null como parâmetro, visto que nosso arquivo não se encaixa em nenhuma das categorias já existentes.

O vídeo a seguir demonstra a visualização de arquivos no DDMS do Eclipse. No Android Studio, a mesma interface está presente. Para acessá-la, utilize a opção Android Device Monitor, como visto na imagem abaixo.

Versão 5.3 - Todos os Direitos reservados